You are given an n x n 2D matrix representing an image.
Rotate the image by 90 degrees (clockwise).
Follow up:
Could you do this in-place?
思路:
该题目最大的难点就是理清二维数组的转换。对二维数组每圈每圈的处理(或者说一层一层的转)。理清数组位置。
代码实现:
class Solution {
public:
void rotate(vector<vector<int>>& matrix) {
int n = matrix.size();
if(n == 0) return;
for(int h = 0; h < (n>>1); ++h)
{
for(int i = h; i < n-1-h; ++i)
{
int temp = matrix[h][i];
matrix[h][i] = matrix[n-1-i][h];
matrix[n-1-i][h] = matrix[n-1-h][n-1-i];
matrix[n-1-h][n-1-i] = matrix[i][n-1-h];
matrix[i][n-1-h] = temp;
}
}
}
};