力扣HOT100 - 54. 螺旋矩阵

解题思路:

设置四个边界

java 复制代码
class Solution {
    public List<Integer> spiralOrder(int[][] matrix) {
        if (matrix.length == 0) return new ArrayList<Integer>();
        int l = 0;
        int r = matrix[0].length - 1;
        int t = 0;
        int b = matrix.length - 1;
        List<Integer> res = new ArrayList<>();

        while (true) {
            for (int i = l; i <= r; i++) res.add(matrix[t][i]);
            if (++t > b) break;
            for (int i = t; i <= b; i++) res.add(matrix[i][r]);
            if (--r < l) break;
            for (int i = r; i >= l; i--) res.add(matrix[b][i]);
            if (--b < t) break;
            for (int i = b; i >= t; i--) res.add(matrix[i][l]);
            if (++l > r) break;
        }
        return res;
    }
}
相关推荐
啊阿狸不会拉杆5 分钟前
人工智能数学基础(一):人工智能与数学
人工智能·python·算法
一捌年10 分钟前
java排序算法-计数排序
数据结构·算法·排序算法
niesiyuan00011 分钟前
MAC如何安装多版本jdk(以8,11,17为例)
java
zcyf080925 分钟前
kafka理论学习汇总
java·分布式·学习·kafka
freexyn41 分钟前
Matlab自学笔记五十二:变量名称:检查变量名称是否存在或是否与关键字冲突
人工智能·笔记·算法·matlab
再拼一次吧41 分钟前
Spring进阶篇
java·后端·spring
爱编程的小庄1 小时前
Maven 4.0.0 模式-pom.xml配置详解
xml·java·maven
黄雪超1 小时前
JVM——引入
java·jvm
wkj0011 小时前
java 和 C#操作数据库对比
java·数据库·c#
WuWuII1 小时前
gateway
java·gateway