zoukankan      html  css  js  c++  java
  • 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单词,我竟然拼错了,感觉英语还要上点心,好久都没学过英语了,自从大一四级没过,然后学了一会,顺便把六级也过了以后,好像就再也没学过英语了,我记得当时我背了好多单词,每天睡觉之前刷那个百词斩,可惜我后来发现我又不考研我背这个干嘛。。。我就没看过了差不多得有一年了把。。

    说多了,下面是代码:

  • 相关阅读:
    如何选择开源许可证?(转)
    gdb的使用(转)
    git的使用
    2017-3-13 leetcode 4 11 15
    2017-3-12 leetcode 167 209 216
    2017-3-11 leetcode 217 219 228
    2017-3-10 leetcode 229 238 268
    1175: 零起点学算法82——find your present
    1174: 零起点学算法81——求整数绝对值
    1173: 零起点学算法80——求实数绝对值
  • 原文地址:https://www.cnblogs.com/cold-windy/p/11748752.html
Copyright © 2011-2022 走看看