🌕 🌗 48. 旋转图像
2022年10月10日
- algorithm
🌕 🌗 48. 旋转图像
难度:🌕 🌗
问题描述
解法
class Solution {
public void rotate(int[][] matrix) {
// 思路:
// 公式 [i][j] = [len - 1 - j][i]
// 每 4 个对角线的元素为一组,进行移动
// 只需要遍历每行
int len = matrix.length;
for(int i = 0; i < len / 2; i ++) {
for(int j = i; j < len - 1 - i; j ++) {
int tmp = matrix[i][j];
int x = i;
int y = j;
for(int k = 0; k < 4; k ++) {
// System.out.println("1: " + x + " " + y + " " + matrix[x][y]);
if(k < 3) {
int newX = len - 1 - y;
int newY = x;
matrix[x][y] = matrix[newX][newY];
// System.out.println(matrix[newX][newY]);
x = newX;
y = newY;
} else {
matrix[x][y] = tmp;
}
// System.out.println("2: " + x + " " + y);
}
}
}
}
}