Problem
You are given an n x n 2D matrix
representing an image, rotate the image by 90 degrees (clockwise).
You have to rotate the image in-place, which means you have to modify the input 2D matrix directly. DO NOT allocate another 2D matrix and do the rotation.
Example 1:
1 | Input: matrix = [[1,2,3],[4,5,6],[7,8,9]] |
Example 2:
1 | Input: matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]] |
Example 3:
1 | Input: matrix = [[1]] |
Example 4:
1 | Input: matrix = [[1,2],[3,4]] |
Constraints:
matrix.length == n
matrix[i].length == n
1 <= n <= 20
-1000 <= matrix[i][j] <= 1000
Analysis
题目要求把一个矩阵顺时针旋转90度,而且不允许使用额外的空间。这就要求我们要进行in-place的操作。这里直接提供一个思路,首先按照对角线,把矩阵分成上下两部分,然后交换这两部分,之后再把每一行反转就能得到结果了。
Solution
无
Code
1 | class Solution { |
Summary
这道题目提供了一个在变换矩阵时一个很重要的思路,就是借助对角线。这道题目的分享到这里,感谢你的支持!