思路
class Solution {
public int[][] generateMatrix(int n) {
int[][] res = new int[n][n];
int[] dx = new int[]{-1,0,1,0};
int[] dy = new int[]{0,1,0,-1};
for(int x=0,y=0,i=0,d=1;i<n*n;i++){
//进行赋值操作
res[x][y]=i+1;
//获取下一次的位置
int a = x + dx[d],b = y + dy[d];
if(a<0||a==n||b<0||b==n||res[a][b]!=0){ //边界条件
d = (d+1)%4;
a=x+dx[d];
b=y+dy[d];
}
x=a;
y=b;
}
return res;
}
}