【矩阵】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;
    }
}
相关推荐
rit843249917 小时前
基于MATLAB的多变量动态矩阵控制(DMC)仿真实现
开发语言·matlab·矩阵
不穿格子的程序员17 小时前
从零开始写算法——矩阵类题:图像旋转 + 搜索二维矩阵 II
线性代数·算法·矩阵
西猫雷婶17 小时前
CNN计算|矩阵扩充方法变化和卷积核移动步长变化
人工智能·pytorch·深度学习·神经网络·矩阵·cnn
科研面壁者19 小时前
SPSS——绘制“简单分布散点图”,“矩阵散点图”,“简单点图”,“重叠散点图”,“3D分布散点图”
3d·信息可视化·矩阵·数据分析·spss·科研绘图
AI科技星20 小时前
伟大的跨越:从超距作用到时空运动——牛顿与张祥前引力场方程的终极对比
开发语言·数据结构·经验分享·线性代数·算法
john_hjy21 小时前
标量、向量、矩阵、张量
算法·机器学习·矩阵
qq_4308558821 小时前
线代第一章行列式第八课:克莱姆法则(Cramer法则)
线性代数·算法·矩阵
小妖66621 小时前
力扣(LeetCode)- 542. 01 矩阵
算法·leetcode·矩阵
simon_skywalker21 小时前
线性代数及其应用习题答案(中文版)第一章 线性代数中的线性方程组 1.7线性无关(2)
线性代数
simon_skywalker21 小时前
线性代数及其应用习题答案(中文版)第一章 线性代数中的线性方程组 1.7 线性无关(1)
线性代数