class Solution {
public int[][] generateMatrix(int n) {
int left = 0;
int right = n-1;
int top = 0;
int bottom = n-1;
int val = 0;
int [][]temp = new int[n][n];
while(val<n*n){
for(int i = left;i<=right;i++){
temp[top][i] = ++val;
}
top++;
for(int i = top;i<=bottom;i++){
temp[i][right]=++val;
}
right--;
for(int i = right;i>=left;i--){
temp[bottom][i]=++val;
}
bottom--;
for(int i = bottom;i>=top;i--){
temp[i][left]=++val;
}
left++;
}
return temp;
}
}
求解螺旋矩阵问题首先要建立四个方位,left,top,right,bottom,其中left=0,top=0,right = n-1,bottom=n-1,我们模拟矩阵的输出过程,首先输入第一行,则top此时需要+1,right不变,再输出top-bottom之间的内容,然后bottom不变,right需要-1,输出right->left之间的内容,然后left不变,bottom-1输出bottom->top之间的内容(因为此时top已经加一了所以不会重复输出内容),循坏即可输出螺旋矩阵。