【发布时间】:2019-03-16 15:52:21
【问题描述】:
假设我有一个像这样的二维数组:
[ 3, 4, 8, 12 ]
[ 2, 6, 7, 16 ]
[ 1, 10, 11, 15 ]
[ 5, 9, 13, 14 ]
我想将shift6[1][1] 和unshift 转换为[2][1],以便我得到以下信息:
[ 3, 4, 8, 12 ]
[ 2, 7, 11, 16 ]
[ 1, 6, 10, 15 ]
[ 5, 9, 13, 14 ]
我想我会 splice(1,1) 在第二个和第三个数组上得到:
a: [6, 7]
b: [10, 11]
然后做:
b.unshift(a.shift)
a << b.pop
【问题讨论】:
-
是的,很抱歉这是个意外。它与红宝石有关
-
在您的示例中,您似乎正在“旋转”子数组
[[6,7], [10,11]]的元素,但没有说明这一点。请详细说明。如果您将[i,j]的元素移动到[k,l],[k,l]是否有任何限制?例如,必须k=i或l=j? -
我对这个问题投了反对票。您在下面的评论中明确表示您希望将上面的第一个数组转换为第二个数组;不是一般的解决方案,而是这两个特定的数组。您不需要使用代码来操作第一个数组,只需将第二个数组编写为文字,就像编写第一个数组一样。
标签: ruby algorithm multidimensional-array