For example,
Given n =
You should return the following matrix:Given n =
3,[ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ]
Java: Spiral Matrix II
01 public int[][] generateMatrix(int n) {
02
03
04 int[][]matrix=new int[n][n];
05
06 if(n==0)
07 return matrix;
08
09 if (n==1)
10 {
11 matrix[0][0]=1;
12 return matrix;
13 }
14
15 int start=0;
16 int end=n-1;
17 int num=1;
18
19 while(start<end)
20 {
21
22 for(int j=start;j<end;j++)
23 {
24 matrix[start][j]=num;
25 num++;
26 }
27
28 for(int i=start;i<end;i++)
29 {
30 matrix[i][end]=num;
31 num++;
32 }
33 for(int j=end;j>start;j--)
34 {
35 matrix[end][j]=num;
36 num++;
37 }
38
39 for(int i=end;i>start;i--)
40 {
41 matrix[i][start]=num;
42 num++;
43 }
44
45 start++;
46 end--;
47
48 }
49
50 if(start==end)
51 {
52 matrix[start][start]=num;
53 }
54
55 return matrix;
56 }
02
03
04 int[][]matrix=new int[n][n];
05
06 if(n==0)
07 return matrix;
08
09 if (n==1)
10 {
11 matrix[0][0]=1;
12 return matrix;
13 }
14
15 int start=0;
16 int end=n-1;
17 int num=1;
18
19 while(start<end)
20 {
21
22 for(int j=start;j<end;j++)
23 {
24 matrix[start][j]=num;
25 num++;
26 }
27
28 for(int i=start;i<end;i++)
29 {
30 matrix[i][end]=num;
31 num++;
32 }
33 for(int j=end;j>start;j--)
34 {
35 matrix[end][j]=num;
36 num++;
37 }
38
39 for(int i=end;i>start;i--)
40 {
41 matrix[i][start]=num;
42 num++;
43 }
44
45 start++;
46 end--;
47
48 }
49
50 if(start==end)
51 {
52 matrix[start][start]=num;
53 }
54
55 return matrix;
56 }
没有评论:
发表评论