题目信息
解析:
和54题是一样的,只不过要求变了一下,换汤不换药。具体逻辑看54题的题解。
文章链接
实现代码:
public int[][] generateMatrix(int n) {
int res[][]=new int[n][n];
boolean[][]used=new boolean[n][n];
int dx[]={0,1,0,-1};
int dy[]={1,0,-1,0};
for(int i=1,x=0,y=0,d=0;i<=n*n;i++){
res[x][y]=i;
used[x][y]=true;
int a=x+dx[d];
int b=y+dy[d];
if(a<0 ||a>=n ||b<0 || b>=n || used[a][b]){
d=(d+1)%4;
a=x+dx[d];
b=y+dy[d];
}
x=a;
y=b;
}
return res;
}