题目
与前面那道题大同小异,核心内容并没有变
class Solution {
public int[][] generateMatrix(int n) {
int[][] mat = new int[n][n];
int res = 1;
int left=0,right=n-1,up=0,bottom=n-1;
while(left<=right && up<=bottom){
if(left==right){
for(int i=up;i<=bottom;i++){
mat[i][left] = res;
res+=1;
}
break;
}
if(up==bottom){
for(int i=left;i<right;i++){
mat[up][i] = res;
res += 1;
}
break;
}
for(int i=left;i<=right;i++){
mat[up][i] = res;
res += 1;
}
for(int i=up+1;i<=bottom;i++){
mat[i][right] = res;
res+=1;
}
for(int i=right-1;i>=left;i--){
mat[bottom][i] = res;
res += 1;
}
for(int i=bottom-1;i>up;i--){
mat[i][left] = res;
res+=1;
}
left++;
right--;
up++;
bottom--;
}
return mat;
}
}