旋转之前

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;
}