给定一个$n\times n$的二维矩阵matrix
表示一个图像。请你将图像顺时针旋转90度。
你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。
提示:
- n == matrix.length == matrix[i].length
- 1 <= n <= 20
- -1000 <= matrix[i][j] <= 1000
48.旋转图像
感觉有我幼儿园那会脑筋急转弯那味了
观察图片易得,可以把旋转进行分解,分解成转置和镜面,转置别写错了
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| class Solution { public: void rotate(vector<vector<int>>& matrix) { int n = matrix.size(); for(int i = 0; i < n; ++i){ for(int j = 0; j < i; ++j){ swap(matrix[i][j], matrix[j][i]); } } for(int i = 0; i < n; ++i){ for(int j = 0; j < n / 2; ++j){ swap(matrix[i][j], matrix[i][n - j - 1]); } }
} };
|