题目链接
题目描述
注意点
- 将图像旋转 90 度
- 不占用额外内存空间
解答思路
- 需要找到将图像旋转90度的规律,为了不占用额外内存空间,可以先将图像上下翻转,然后再将图像沿着主对角线进行翻转,得到的就是旋转90度之后的图像
代码
class Solution {
public void rotate(int[][] matrix) {
int n = matrix.length;
// 先水平翻转
for (int i = 0; i < n / 2; i++) {
for (int j = 0; j < n; j++) {
int tmp = matrix[i][j];
matrix[i][j] = matrix[n - i - 1][j];
matrix[n - i - 1][j] = tmp;
}
}
// 再沿主对角线旋转
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
int tmp = matrix[i][j];
matrix[i][j] = matrix[j][i];
matrix[j][i] = tmp;
}
}
}
}
关键点
- 将矩阵旋转90度的规律