一开始想到的是直接交换,但是发现不可行。会覆盖原有的值。如下 2就没有了 被覆盖了。
应该是先上下反转,在对角交换。
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 t = matrix[i][j];
matrix[i][j] = matrix[n - i - 1][j];
matrix[n - i - 1][j] = t;
}
}
for(int i = 0;i < n;i++){
for(int j = i;j < n;j++){
int t = matrix[i][j];
matrix[i][j] = matrix[j][i];
matrix[j][i] = t;
}
}
}
}