先转置再旋转每一行
public void rotate(int[][]matrix){
int r=matrix.length;
int c=matrix[0].length;
int[][]rmatrix=new int[c][r];
for(int i=0;i<r;i++){
for(int j=0;j<c;j++){
System.out.print(matrix[i][j]+" ");//打印原矩阵
}
System.out.println();
}
for(int i=0;i<r;i++){
for(int j=0;j<c;j++){
rmatrix[j][i]=matrix[i][j];//转置矩阵
}
}
for(int i=0;i<c;i++){
for(int j=0;j<r;j++){
System.out.print(rmatrix[i][j]+" ");//打印转置矩阵
}
System.out.println();
}
//转置矩阵每一行进行旋转
for(int i=0;i<c;i++){
for(int j=0;j<r/2;j++){
int temp=0;
temp=rmatrix[i][j];
rmatrix[i][j]=rmatrix[i][r-1-j];
rmatrix[i][r-1-j]=temp;
}
}
for(int i=0;i<c;i++){
for(int j=0;j<r;j++){
System.out.print(rmatrix[i][j]+" ");//打印最终的旋转矩阵
}
System.out.println();
}
}