【矩阵】54.螺旋矩阵(顺时针打印矩形元素)

题目

java 复制代码
class Solution {
    public List<Integer> spiralOrder(int[][] matrix) {
        int m = matrix.length, n = matrix[0].length;
        int leftUpM = 0, leftUpN = 0, rightDownM = m - 1, rightDownN = n - 1;
        List<Integer> res = new ArrayList<>();
        while (leftUpM <= rightDownM && leftUpN <= rightDownN) {
            for (int i = leftUpN; i <= rightDownN; ++i) { // 向右
                res.add(matrix[leftUpM][i]);
            }
            for (int i = leftUpM + 1; i < rightDownM; ++i) { // 向下
            	res.add(matrix[i][rightDownN]);
            }
            for (int i = rightDownN; i >= leftUpN && leftUpM < rightDownM; --i) { // 向左
                res.add(matrix[rightDownM][i]);
            }
            for (int i = rightDownM - 1; i > leftUpM && leftUpN < rightDownN; --i) { // 向上
                res.add(matrix[i][leftUpN]);
            }
            ++leftUpM;
            ++leftUpN;
            --rightDownM;
            --rightDownN;
        }

        return res;
    }
}
相关推荐
再卷也是菜1 小时前
第一章、线性代数(2)高斯消元法
线性代数·算法
爱丽_7 小时前
SQL 事务主线:ACID、隔离级别、MVCC 与一致性读
jvm·矩阵
剑穗挂着新流苏3129 小时前
206_深度学习进阶:模型选择、过拟合与欠拟合的生存法则
人工智能·pytorch·深度学习·神经网络·线性代数
穿条秋裤到处跑10 小时前
每日一道leetcode(2026.03.28):找出对应 LCP 矩阵的字符串(这题真恶心)
leetcode·矩阵
kronos.荒1 天前
搜索二维矩阵中的target——二分查找或者二叉搜索树(python)
python·矩阵·二分查找
炽烈小老头1 天前
【每天学习一点算法 2026/03/29】搜索二维矩阵 II
学习·算法·矩阵
Cathy Bryant1 天前
拓扑学:曲面与圆环
笔记·线性代数·矩阵·拓扑学
爱丽_1 天前
AQS:公平/非公平、自旋与阻塞(park)的取舍、适用场景与常见坑
jvm·矩阵
再卷也是菜1 天前
第一章、线性代数(1)矩阵乘法
线性代数·矩阵
bulingg2 天前
L1与L2正则化的差异
线性代数·矩阵·概率论