【leetcode】袁厨每日精选题详解之老铁,你这个螺旋给我绕晕了。

   日期:2020-10-18     浏览:167    评论:0    
核心提示:  嗨,大家好,我是袁厨(因为酷爱做饭,所以自己考取了厨师证)。之前一直看大家写的博客,学到了很多东西。然后最近萌生了自己写的想法,将自己知道的分享给需要的同学。以后每天会为大家分享leetcode精选题目的各种题解,并且每周会整理一下该周刷的所有题目,及解题框架。大家微信搜索【程序员爱做饭】关注我吧! 54.螺旋矩阵题目描述顺时针遍历做题思路题目代码总结题目描述 顺时针遍历 做题思路 其实这个题目还算是比较容易,但是因为可能处理不好边界情况,所以还是需要细心思考,这..

  嗨,大家好,我是袁厨(因为酷爱做饭,所以自己考取了厨师证)。之前一直看大家写的博客,学到了很多东西。然后最近萌生了自己写的想法,将自己知道的分享给需要的同学。以后每天会为大家分享leetcode精选题目的各种题解,并且每周会整理一下该周刷的所有题目,及解题框架。大家微信搜索【程序员爱做饭】关注我吧!

54.螺旋矩阵

  • 题目描述
  • 顺时针遍历
    • 做题思路
    • 题目代码
  • 总结

题目描述

顺时针遍历

做题思路

其实这个题目还算是比较容易,但是因为可能处理不好边界情况,所以还是需要细心思考,这个题目我师兄面试的时候就遇到了,所以很有学习价值。主要思想就是通过顺时针进行一层一层的进行遍历,然后最后在上方和左方处理边界情况,然后就实现了螺旋遍历。

箭头代表遍历顺序,长度代表元素个数。总的思想就是这样的。

题目代码

class Solution { 
    public List<Integer> spiralOrder(int[][] matrix) { 
        List<Integer> list = new ArrayList<>();
        //防止出现空的情况,先将其排除
        if(matrix.length==0||matrix==null||matrix[0].length==0){ 
            return list;
        }
        //得出数组的长和宽
         int len = matrix.length;
         int widlen = matrix[0].length;
         //最小的那个加一除以2,则为最小 遍历次序
         for(int i=0;i<(Math.min(len,widlen)+1)/2;i++){ 
            //第一条边遍历情况
            for(int j =i;j<widlen-i;j++){                
                list.add(matrix[i][j]);
            }
            //第二条边遍历情况
            for(int j=i+1;j<len-i;j++){                
                list.add(matrix[j][widlen-i-1]);
            }
            //第三条遍历情况
            for(int j = widlen-i-2;j>=i;j--){ 
                //防止出现重复遍历的情况
                 if(list.size()==len*widlen){ 
                    break;
                }
                list.add(matrix[len-i-1][j]);
            }
            //第四条遍历情况
            for(int j = len - i-2;j>i;j--){ 
                //防止出现重复遍历的情况
                if(list.size()==len*widlen){ 
                    break;
                }
                list.add(matrix[j][i]);
            }
            
        }
       return list;
    }
}

总结

学会这个题目可以直接解决两道题,螺旋插入的题目同样也可以解决。

更多题目总结请扫描下面二维码,一块刷题呀。

作者:LeetCode
链接:https://leetcode-cn.com/problems/rotate-array/solution/xuan-zhuan-shu-zu-by-leetcode/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服