【矩阵】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;
    }
}
相关推荐
拉姆哥的小屋7 分钟前
从400维向量到160000维矩阵:基于深度学习的火焰参数预测系统全解析
开发语言·人工智能·python·深度学习·线性代数·算法·矩阵
咚咚王者2 小时前
人工智能之数学基础 线性代数:第四章 矩阵分解
人工智能·线性代数·矩阵
咚咚王者5 小时前
人工智能之数学基础 线性代数:第三章 特征值与特征向量
人工智能·线性代数·机器学习
Tipriest_17 小时前
旋转矩阵与欧拉角转换数学公式与代码详解
线性代数·矩阵
十子木17 小时前
布林克曼方程和Darcy方程的区别
线性代数·矩阵·学习方法
测试人社区-小明17 小时前
智能测试误报问题的深度解析与应对策略
人工智能·opencv·线性代数·微服务·矩阵·架构·数据挖掘
Tipriest_1 天前
旋转矩阵,齐次变换矩阵,欧拉角,四元数等相互转换的常用代码C++ Python
c++·python·矩阵
小李小李快乐不已1 天前
数组&&矩阵理论基础
数据结构·c++·线性代数·算法·leetcode·矩阵
wa的一声哭了1 天前
拉格朗日插值
人工智能·线性代数·算法·机器学习·计算机视觉·自然语言处理·矩阵
启明真纳1 天前
矩阵”到底是什么
线性代数·矩阵