这种题肯定是需要变量来进行操作的,因此找准变量是非常重要的事情。变量不仅是在当前步骤发生变化而且还会影响到后序的步骤。
public int [][]generateMatrix(int n) {
int[][]result=new int[n][n];
int k=1;
int top=0;
int bottom=n-1;
int left=0;
int right=n-1;
int num=n*n;
while(k<=num){
for(int i=left;i<=right;i++){
result[top][i]=k++;
}
top++;
for(int i=top;i<=bottom;i++){
result[i][right]=k++;
}
right--;
for(int i=right;i>=left;i--){
result[bottom][i]=k++;
}
bottom--;
for(int i=bottom;i>=top;i--){
result[left][i]=k++;
}
left++;
}
return result;
}