力扣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;
    }
}
相关推荐
渣哥几秒前
Java 集合迭代中的 fail-fast 与 fail-safe 机制详解
java
帧栈4 分钟前
我的创作纪念日
java
kk”18 分钟前
C语言快速排序
数据结构·算法·排序算法
纪元A梦23 分钟前
贪心算法应用:基因编辑靶点选择问题详解
算法·贪心算法
3壹28 分钟前
数据结构精讲:栈与队列实战指南
c语言·开发语言·数据结构·c++·算法
bug攻城狮38 分钟前
Spring Boot Banner
java·spring boot·后端
黑马源码库miui520861 小时前
JAVA同城打车小程序APP打车顺风车滴滴车跑腿源码微信小程序打车源码
java·微信·微信小程序·小程序·uni-app
skytier1 小时前
Construct内报错和定位解决
算法
MadPrinter1 小时前
SpringBoot学习日记 Day11:博客系统核心功能深度开发
java·spring boot·后端·学习·spring·mybatis
淦出一番成就1 小时前
Java反序列化接收多种格式日期-JsonDeserialize
java·后端