問題
給定一個 n × n 的二維矩陣,按順時針旋轉(zhuǎn) 90 度在原矩陣上進行旋轉(zhuǎn)。
思路
依次對矩陣最外層進行90度偏移
原矩陣:
image.png
旋轉(zhuǎn)后矩陣:
image.png
實現(xiàn)
public class Rotate {
public static void main(String[] args) {
int[][] nums = new int[][]{{1,2,3},{4,5,6},{7,8,9}};
rotate(nums);
}
private static void rotate(int[][] matrix) {
int length = matrix.length;
for (int i = 0; i < length / 2; i++) {
for (int j = i; j < length - i - 1; j++) {
int temp = matrix[i][j];
int m = length - j - 1;
int n = length - i - 1;
matrix[i][j] = matrix[m][i];
matrix[m][i] = matrix[n][m];
matrix[n][m] = matrix[j][n];
matrix[j][n] = temp;
}
}
}
}
image.png