class Solution {
public int[][] generateMatrix(int n) {
//1.创建二维数组,所谓的平方就是两个这个数的维度
int[][] array = new int[n][n];
int count = 1;
int offset = 1;
int loop = 1;
//2.设置起始点
int startx = 0;
int starty = 0;
int i,j;
//3.创建循环条件
while (loop <= n/2) {
//1.上行,行i不变,列j递增
for (j = starty;j < n - offset;j++) {
array[startx][j] = count++;
}
//2.右列,行i递增,列j不变
for (i = startx;i < n - offset;i++) {
array[i][j] = count++;
}
//3.下行,行i不变,列j递减
for (;j > starty ;j --) {
array[i][j] = count++;
}
//4.右列,行i递减,列j不变
for (;i > startx ;i--) {
array[i][j] = count++;
}
startx++;
starty++;
loop++;
offset++;
}
if (n % 2 != 0) {
array[startx][starty] = count;
}
return array;
}
}
10-13
134
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
08-14
705
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)