仔细分辨题目,是N*N的矩阵,也就是个正方形,顺时针转90度,其实就是从第一列开始,从下到上输出,直到最后一列从上到下输出结束。

  • 新数组第一行第一个数是arr[0][0] = mat[n-1][0],第二个数是arr[0][1] = mat[n-1-1][0]...
  • 新数组第二行第一个数是arr[1][0] = mat[n-1][1],第二个数是arr[1][1] = mat[n-1-1][1]...
  • 所以循环是新数组从0行0列开始,老数组是从n-1行0列开始,新数组装数时是行固定,老数组是列固定
import java.util.*;

public class Solution {
    public int[][] rotateMatrix(int[][] mat, int n) {
        // write code here
        int[][] arr = new int[n][n];
        for(int i=n-1,m=0;i>=0;i--,m++){
            for(int j=0,x=n-1;j<n;j++,x--){
                arr[m][j]=mat[x][m];
            }
        }
        return arr;
    }
}