class Solution {
public int[][] generateMatrix(int n) {
int num =1;
int[][] answer = new int[n][n];//创造矩阵
int top = 0,left = 0, right = n-1,bottom =n -1;
while(left <= right && top <= bottom){
for(int start = left; start <= right ; start++ ){
answer[top][start] = num;
num++;
}
for(int row = top+1;row <= bottom ;row++){
answer[row][right] = num;
num++;
}
if(left < right && top < bottom){
for(int start = right -1 ; start > left;start--){
answer[bottom][start] = num;
num++;
}
for(int start = bottom ; start > top ; start-- ){
answer[start][left] = num;
num++;
}
}
left++;
right--;
top++;
bottom--;
}
return answer;
}
}
这道题是长方形,感觉无法在进行优化了,如果有不同意见,可以一起讨论。这道题重要考的是如果拐弯
这个图片可能可以更好的让你们理解这个代码,我写的时候也是参考这个图来写的。总的来说这题还是可以的。如果有什么不同见解,欢迎讨论哈