class Solution {
public int[][] generateMatrix(int n) {
int[][] ret = new int[n][n];
int dir = 0;//控制方向0向右,1向下,2向左,3向上
int cnt = 1;
int len = n*n;
int row = 0;
int column = 0;
while(cnt<=len){
if(dir==0){
while( column<=(n-1) && ret[row][column]==0){
ret[row][column++] = cnt++;
}
column--;//最后一个溢出了,调整回来
row++;//向下走
}else if(dir==1){
while(row<=(n-1) && ret[row][column]==0){
ret[row++][column] = cnt++;
}
row--;
column--;
}else if(dir==2){
while(column>=0&&ret[row][column]==0){
ret[row][column--] = cnt++;
}
column++;
row--;
}else{
while(row>=0&&ret[row][column]==0){
ret[row--][column] = cnt++;
}
row++;
column++;
}
dir = (++dir)%4;
}
return ret;
}
}
leetcode59旋转填入数组
最新推荐文章于 2023-09-13 19:56:30 发布