59. 螺旋矩阵 II-LeetCode

心得:螺旋矩阵,定义数组的四个边界,根据边界判断,

还要想好判断条件。每个方向判断一次。

心得:

 1 class Solution {
 2     public int[][] generateMatrix(int n) {
 3         if(n<1)
 4             return new int[0][0];
 5         int[][] arr=new int[n][n];
 6         int top=0,bot=n-1,left=0,right=n-1,size=1;
 7         while(size<=n*n)
 8         {
 9             for(int i=left;i<=right;i++,size++)
10             {
11                 arr[top][i]=size;
12             }
13             top++;
14             if(size<=n*n)
15             {
16           for(int i=top;i<=bot;i++,size++)
17             {
18                 arr[i][right]=size;
19             }
20             right--;
21             }
22             if(size<=n*n)
23             {
24           for(int i=right;i>=left;i--,size++)
25             {
26                 arr[bot][i]=size;
27             }
28             bot--;
29             }
30                 if(size<=n*n)
31                 {
32           for(int i=bot;i>=top;i--,size++)
33             {
34                 arr[i][left]=size;
35             }
36             left++;
37                 }
38         }
39         return arr;
40     }
41 }

猜你喜欢

转载自www.cnblogs.com/pc-m/p/11072411.html