相关疑难解决方法(0)

循环循环

一位朋友需要一种算法让他循环遍历NxM矩阵的元素(N和M是奇数).我提出了一个解决方案,但我想知道我的同事是否可以提出更好的解决方案.

我发布我的解决方案作为这个问题的答案.

示例输出:

对于3x3矩阵,输出应为:

(0,0)(1,0)(1,1)(0,1)(-1,1)(-1,0)( - 1,-1)(0,-1)(1,-1) )

3x3矩阵

此外,该算法应支持非平方矩阵,因此例如对于5x3矩阵,输出应为:

(0,0)(1,0)(1,1)(0,1)(-1,1)(-1,0)( - 1,-1)(0,-1)(1,-1) )(2,-1)(2,0)(2,1)(-2,1)(-2,0)( - 2,-1)

5x3矩阵

algorithm loops matrix spiral

148
推荐指数
8
解决办法
8万
查看次数

红宝石 - 逆时针旋转矩阵n位置

给定2D矩阵:

matrix = [
   [  1,   2,   3,   4  ],
   [  5,   6,   7,   8  ],
   [  9,  10,  11,  12  ],
   [ 13,  14,  15,  16  ]
]
Run Code Online (Sandbox Code Playgroud)

我们如何逆时针旋转矩阵,以便像这样推动值?

matrix = [
   [  2,   3,   4,   8  ]
   [  1,   7,  11,  12  ]
   [  5,   6,  10,  16  ]
   [  9,  13,  14,  15  ]
]
Run Code Online (Sandbox Code Playgroud)

注意

这个问题不是重复this&this因为我想要做到的,是在逆时针旋转时尚的值.

我目前的实施和问题

我当前的实现仅以逆时针方式打印出值,但它不会旋转值.

  layers = [_rows, _cols].min / 2
  r1, r2, c3, c4 = 0, _rows, _cols, …
Run Code Online (Sandbox Code Playgroud)

ruby arrays algorithm traversal multidimensional-array

5
推荐指数
1
解决办法
325
查看次数