Javascript程序通过顺时针方向将第i行精确旋转i次来修改矩阵
给定一个维度为M * N的矩阵mat[][] ,任务是打印矩阵的每第 i行按顺时针方向旋转i次后获得的矩阵。
例子:
Input: mat[][] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}
Output:
1 2 3
6 4 5
8 9 7
Explanation:
The 0th row is rotated 0 times. Therefore, the 0th row remains the same as {1, 2, 3}.
The 1st row is rotated 1 times. Therefore, the 1st row modifies to {6, 4, 5}.
The 2nd row is rotated 2 times. Therefore, the 2nd row modifies to {8, 9, 7}.
After completing the above operations, the given matrix modifies to {{1, 2, 3}, {6, 4, 5}, {8, 9, 7}}.
Input: mat[][] = {{1, 2, 3, 4}, {4, 5, 6, 7}, {7, 8, 9, 8}, {7, 8, 9, 8}}
Output:
1 2 3 4
7 4 5 6
9 8 7 8
8 9 8 7
解决方法:按照以下步骤解决问题:
- 以行方式遍历给定的矩阵,并且对于每第 i行,执行以下步骤:
- 反转矩阵的当前行。
- 反转当前行的前i个元素。
- 反转当前行的最后(N – i)个元素,其中N是行的当前大小。
- 完成上述步骤后,打印矩阵mat[][] 。
下面是上述方法的实现:
Javascript
1 2 3
6 4 5
8 9 7
时间复杂度: O(M * N)
辅助空间: O(1)
有关详细信息,请参阅有关通过顺时针方向将第 i 行精确旋转 i 次来修改矩阵的完整文章!