旋转之前
1 2 3
4 5 6
7 8 9
90度旋转之后
7 4 1
8 5 2
9 6 3
解题
实际上就是把原二维数组,从下往上(从后往前)一列一列的取出,然后重组成新的二维数组;
public int[][] rotateMatrix(int[][] mat, int n) {
//返回的结果
int[][] result = new int[n][n];
// 5 保存结果集时,是第几组
int k = 0;
// 1 被取元素的下标
int index = 0;
// 2 确认总共要取多少次,1列1次,总共有n列
for(int i = 0; i < n; i++){
// 6 保存结果集时,元素的下标
int y = 0;
//3 每次取的第几组,从后往前取
for(int j = n-1; j >= 0; j--){
// 4 赋值操作(j:第几组,index: 第几组中元素的下标)
result[k][y] = mat[j][index];
y++;
}
index++;
k++;
}
return result;
}