力扣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;
    }
}
相关推荐
standovon几秒前
Spring Boot+Vue项目从零入手
java
爱丽_1 分钟前
ThreadLocal 机制:弱引用 Entry、内存泄漏、线程池复用与线上排查
java·jvm·算法
前端小雪的博客.2 分钟前
Java的面向对象:方法重写(0基础入门版)
java·java基础·java入门·override·方法重写·java面向对象·方法重写与重载的区别
殷紫川4 分钟前
Java 工程化体系:代码规范与团队协作全链路标准
java·架构·代码规范
半瓶榴莲奶^_^6 分钟前
java模式
java·开发语言
2301_815482939 分钟前
C++编译期矩阵运算
开发语言·c++·算法
☆56614 分钟前
C++中的类型擦除技术
开发语言·c++·算法
m0_5698814720 分钟前
C++与自动驾驶系统
开发语言·c++·算法
heimeiyingwang23 分钟前
【架构实战】微服务架构核心概念与演进
java·微服务·架构
Memory_荒年25 分钟前
当餐厅后厨也懂分布式:SpringBoot中的重试、限流、熔断与幂等的“四重奏”
java·后端·spring