public int[][] generateMatrix(int n) {
int[][] arr = new int[n][n];
int num = 1, tar = n * n;
int t = 0, r = n - 1, b = n - 1, l = 0;
//t、b分别代表二维矩阵从上到下、从下到上的行数
//l、r分别代表二维矩阵从左到右、从右到左的行数
while(num <= tar){
for(int i = l; i <= r; i++){arr[t][i] = num++;}
t++;
for(int i = t; i <= b; i++){arr[i][r] = num++;}
r--;
for(int i = r; i >= l; i--){arr[b][i] = num++;}
b--;
for(int i = b; i >= t; i--){arr[i][l] = num++;}
l++;
}
return arr;
}
k神nb