观察中给出的矩阵,将矩阵转置后,得到的结果与所需要的旋转矩阵每行元素相同,且只需要将每行元素翻转后,便可以得到所需要的旋转结果,因此可以使用两次操作实现矩阵的旋转。
class Solution {
public void rotate(int[][] matrix) {
//将矩阵转置
for(int i=0; i<matrix.length; i++){
for(int j=i; j<matrix.length; j++){
int temp = matrix[i][j];
matrix[i][j] = matrix[j][i];
matrix[j][i] = temp;
}
}
//将矩阵每行元素翻转
for(int i=0; i<matrix.length; i++){
for(int j=0; j<matrix.length/2; j++){
int temp = matrix[i][j];
matrix[i][j] = matrix[i][matrix.length-1-j];
matrix[i][matrix.length-1-j]=temp;
}
}
}
}