一位朋友需要一种算法让他循环遍历NxM矩阵的元素(N和M是奇数).我提出了一个解决方案,但我想知道我的同事是否可以提出更好的解决方案.
我发布我的解决方案作为这个问题的答案.
示例输出:
对于3x3矩阵,输出应为:
(0,0)(1,0)(1,1)(0,1)(-1,1)(-1,0)( - 1,-1)(0,-1)(1,-1) )

此外,该算法应支持非平方矩阵,因此例如对于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)

给定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)