【矩阵】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;
    }
}
相关推荐
阳光_你好6 小时前
简单介绍C++中线性代数运算库Eigen
开发语言·c++·线性代数
HappyAcmen19 小时前
线代第三章向量第二节:向量间的线性关系一
笔记·学习·线性代数
jndingxin1 天前
OpenCV CUDA 模块中的矩阵算术运算-----在频域(复数频谱)中执行逐元素乘法并缩放的函数mulAndScaleSpectrums()
opencv·计算机视觉·矩阵
X-future4262 天前
院校机试刷题第六天:1134矩阵翻转、1052学生成绩管理、1409对称矩阵
线性代数·算法·矩阵
九州ip动态2 天前
自媒体工作室如何矩阵?自媒体矩阵养号策略
线性代数·矩阵·媒体
phoenix@Capricornus2 天前
反向传播算法——矩阵形式递推公式——ReLU传递函数
算法·机器学习·矩阵
田梓燊2 天前
数学复习笔记 19
笔记·线性代数·机器学习
田梓燊3 天前
数学复习笔记 12
笔记·线性代数·机器学习
北上ing3 天前
算法练习:19.JZ29 顺时针打印矩阵
算法·leetcode·矩阵
jerry6094 天前
LLM笔记(六)线性代数
笔记·学习·线性代数·自然语言处理