19、矩阵-螺旋矩阵

思路:

这道题主要是对空间上有所思考,每次转一圈上右下左各减少一层。不妨设top,right,down,left,每次旋转一圈 top++,right--,down--,left++

代码如下:

复制代码
class Solution {
   public List<Integer> spiralOrder(int[][] matrix) {
        if (matrix==null||matrix.length==0||matrix[0].length==0){
            return new ArrayList<>();
        }
        int m=matrix.length;
        int n=matrix[0].length;
        List<Integer> list=new ArrayList<>();
        int total=m*n;
        int left=0;int right=n-1;int top=0;int down=m-1;

        while (list.size()<total) {
            //从左向右运动
            for (int col = left; col <= right && list.size() < total; col++) {
                list.add(matrix[top][col]);
            }
            //上边界下移
            top++;
            //从上往下运动
            for (int row = top; row <= down && list.size() < total; row++) {
                list.add(matrix[row][right]);
            }
            //有边界左移
            right--;
            //从右往左运动
            for (int col = right; col >= left && list.size() < total; col--) {
                list.add(matrix[down][col]);
            }
            //下边界上移
            down--;
            //从下往上
            for (int row = down; row >= top && list.size() < total; row--) {
                list.add(matrix[row][left]);
            }
            left++;
        }
        return list;
    }
}
相关推荐
d***29242 分钟前
【spring】Spring事件监听器ApplicationListener的使用与源码分析
java·后端·spring
5***b977 分钟前
解决报错net.sf.jsqlparser.statement.select.SelectBody
java
q***952213 分钟前
Tomcat下载,安装,配置终极版(2024)
java·tomcat
2***d88519 分钟前
详解tomcat中的jmx监控
java·tomcat
无敌最俊朗@28 分钟前
Qt事件循环队列剖析!!!
java
v***56540 分钟前
Spring Cloud Gateway 整合Spring Security
java·后端·spring
做怪小疯子43 分钟前
LeetCode 热题 100——矩阵——旋转图像
算法·leetcode·矩阵
努力学习的小廉44 分钟前
我爱学算法之—— BFS之最短路径问题
算法·宽度优先
python零基础入门小白1 小时前
【万字长文】大模型应用开发:意图路由与查询重写设计模式(从入门到精通)
java·开发语言·设计模式·语言模型·架构·大模型应用开发·大模型学习
高山上有一只小老虎1 小时前
构造A+B
java·算法