假设我有以下(2D)矩阵:
[[1, 2, 3, 4 ],
[5, 6, 7, 8 ],
[9, 10, 11, 12],
[13, 14, 15, 16]]
旋转矩阵逆时针 R
倍(未以90个增量,只是通过每次1号),
1 2 3 4 2 3 4 8 3 4 8 12
5 6 7 8 --> 1 7 11 12 --> 2 11 10 16
9 10 11 12 5 6 10 16 1 7 6 15
13 14 15 16 9 13 14 15 5 9 13 14
完成的示例:
输入:
2
[[1, 2, 3, 4 ],
[5, 6, 7, 8 ],
[9, 10, 11, 12],
[13, 14, 15, 16]]
输出:
[[3, 4, 8, 12],
[2, 11, 10, 16],
[1, 7, 6, 15],
[5, 9, 13, 14]]
(奇怪的空格是将数字对齐在漂亮的列中)
矩阵的外部“环”逆时针旋转2,而内部右环也旋转2。在这个矩阵中,只有两个环。
带有1个“环”的示例:
2
[[1, 2],
[3, 4],
[5, 6]]
应该输出:
[[4, 6],
[2, 5],
[1, 3]]
您面临的挑战是接受一个矩阵和一个整数R
,并在R
旋转后输出翻译后的版本。
限制条件:
2 ≤ M, N ≤ 100
,其中M和N是矩阵的尺寸。保证M和N的最小值是偶数。1 ≤ R ≤ 80
,其中r是转数。- 矩阵将永远只包含正整数。
- 价值并不总是截然不同的。
- 输入应始终为2D数组(如果您不能将运行时输入作为2D数组,则只需寻找另一种获取输入的方法)。
另一个测试用例,具有不同的值:
1
[[1, 1],
[2, 2],
[3, 3]]
输出:
[[1, 2],
[1, 3],
[2, 3]]
这是代码高尔夫球,所以最短的答案会成功!
[[3, 4, 8, 12], [2, 11, 10, 16], [1, 7, 6, 16], [5, 9, 13, 14]]
16突然重复我想这应该是:[[3, 4, 8, 12], [2, 11, 10, 16], [1, 7, 6, 15], [5, 9, 13, 14]]
?