54. 螺旋矩阵

//感想:1.这道题写了蛮久的,之前在牛客上也刷过,我记得还差不多a了,思路当时基本写出来了,结果这次遇见了,写了好久都没搞定,现在也算是

a了,遇见这种需要仔细考虑边界条件。

2.这边主要是这个循环次数的计算,我上次好像根本就没有算这个东西,就把这题解出来了,

这个循环次数等于time=min(m,n)+1/2,m,n分别是行列的数目。

3.然后在取点巧,直接弄点简单的,用一个visited数组记录走过的位置,这样就不怕遇见重复了,剩下的就简单了,随便暴力横竖走就可以了。。。

4。

 1 class Solution {
 2     public List<Integer> spiralOrder(int[][] matrix) {
 3         List<Integer> res=new ArrayList<Integer>();
 4         if(matrix==null||matrix.length==0)
 5             return res;
 6         
 7         int m = matrix.length;
 8        
 9         int n = matrix[0].length;
10         int visited[][] = new int[m][n];
11         int min,time=0;
12         if(m>n) min=n;
13         else min=m;
14         if(min%2==0) time=min/2;
15         else time=min/2+1;
16       
17         for(int i=0;i<time;i++)
18         {
19             for(int j=i;j<n-i;j++)
20             {
21                  if(visited[i][j]!=1)
22                  {
23                     res.add(matrix[i][j]);
24                     visited[i][j]=1;
25                  }
26                  
27             }
28 
29             for(int j=i;j<m-i;j++)
30             {
31                 if(visited[j][n-1-i]!=1)
32                 {
33                       visited[j][n-1-i]=1;
34                      res.add(matrix[j][n-1-i]);
35                 }
36                
37             }
38 
39             for(int j=n-1-i;j>=i;j--)
40             {
41                 if(visited[m-1-i][j]!=1)
42                 {
43                      visited[m-1-i][j]=1;
44                 res.add(matrix[m-1-i][j]);
45                 }
46                 
47             }
48 
49             for(int j=m-i-1;j>=i;j--)
50             {
51                 if(visited[j][i]!=1)
52                 {
53                       visited[j][i]=1;
54                 res.add(matrix[j][i]);
55                 }
56                
57             }
58 
59 
60         }
61 
62        
63         return res;
64         
65         
66     }
67 }

 

还有一点:今天这个visit单词,我竟然拼错了,感觉英语还要上点心,好久都没学过英语了,自从大一四级没过,然后学了一会,顺便把六级也过了以后,好像就再也没学过英语了,我记得当时我背了好多单词,每天睡觉之前刷那个百词斩,可惜我后来发现我又不考研我背这个干嘛。。。我就没看过了差不多得有一年了把。。

说多了,下面是代码:

posted @ 2019-10-27 20:01  小路不会迷路  阅读(146)  评论(0编辑  收藏  举报