【LeetCode-中等题】54. 螺旋矩阵

文章目录

题目

方法一:按层模拟

思路就是定义四个指针边界,按顺序扫完一遍,再缩小区域再扫描

java 复制代码
 public List<Integer> spiralOrder(int[][] matrix) {
        List<Integer> order = new ArrayList<Integer>(); 
        int matrixlength = matrix.length;
        int matrixNumlength = matrix[0].length;
        //判空条件
        if(matrix==null ||  matrixlength == 0 || matrixNumlength == 0) return order;
        //定义四个指针边界
        int top = 0;//行边界
        int bot = matrixlength-1;
        int left = 0;//列边界
        int right = matrixNumlength-1;
        while(left <= right && top <= bot){
        // 首先循环最外层  顺序依次为右下左上
           // (left)                   (right)
        // (top)1,      2,      3,       4 (top)
        //      5,      6,      7,       8
        // (bot)9,      10,     11,     12(bot)
           // (left)                    (right)

        //右 -->  左  最上层
        for(int i = left ;i <= right;i++){
            order.add(matrix[top][i]);
        }

         //上 -->  下  最右层
        for(int i = top+1 ;i <= bot;i++){
            order.add(matrix[i][right]);
        }
    if(left!=right  && bot!=top){//  如果right和left重合了  说明上往下扫描了一遍,就不需要再从下往上重复扫一遍了
                                //  如果 bot 和 top 重合了  说明左往右扫描了一遍,就不需要再从右往左重复扫一遍了
         //左 -->  右  最下层
        for(int i = right-1 ;i >= left;i--){
            order.add(matrix[bot][i]);
        }
  
          //下 -->  上  最左层
        for(int i = bot-1 ;i >top;i--){
            order.add(matrix[i][left]);
        }
  }    
        //往里缩一圈
        left  ++;
        right --;
        top ++;
        bot --;
        }
        return order;
    }
相关推荐
米粒15 小时前
力扣算法刷题 Day 27
算法·leetcode·职场和发展
Fuxiao___5 小时前
C 语言核心知识点讲义(循环 + 函数篇)
算法·c#
Mr_Xuhhh6 小时前
LeetCode hot 100(C++版本)(上)
c++·leetcode·哈希算法
漫随流水6 小时前
c++编程:反转字符串(leetcode344)
数据结构·c++·算法
穿条秋裤到处跑7 小时前
每日一道leetcode(2026.03.31):字典序最小的生成字符串
算法·leetcode
CoovallyAIHub9 小时前
VisionClaw:智能眼镜 + Gemini + Agent,看一眼就能帮你搜、帮你发、帮你做
算法·架构·github
CoovallyAIHub10 小时前
低空安全刚需!西工大UAV-DETR反无人机小目标检测,参数减少40%,mAP50:95提升6.6个百分点
算法·架构·github
CoovallyAIHub10 小时前
IEEE Sensors | 湖南大学提出KGP-YOLO:先定位风电叶片再检测缺陷,三数据集mAP均超87%
算法
Yupureki10 小时前
《算法竞赛从入门到国奖》算法基础:动态规划-路径dp
数据结构·c++·算法·动态规划
副露のmagic10 小时前
数组章节 leetcode 思路&实现
算法·leetcode·职场和发展