螺旋矩阵2
  螺旋矩阵2其实就是在1的基础上将遍历的数组值变为我们的值,思路和1一样。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
public int[][] generateMatrix(int n) {
int i = 1;
int left = 0;
int right = n;
int top = 0;
int bottom = n;
int row = 0;
int col = 0;
int [][] matrix = new int[n][n];
while(top<bottom||left<right){
for(col = left;col<right;col++){
matrix[top][col] = i;
i++;
}
for(row =top+1;row < bottom; row++){
matrix[row][right-1] = i;
i++;
}
if(top<bottom&&left<right){
for(col = right-2;col>=left;col--){
matrix[bottom-1][col] = i;
i++;
}
for(row = bottom-2; row > top; row-- ){
matrix[row][left] = i;
i++;
}
}
left++;
right--;
bottom--;
top++;
}
return matrix;
}