【矩阵】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;
    }
}
相关推荐
ChoSeitaku1 小时前
线代强化NO20|矩阵的相似与相似对角化|综合运用
线性代数·机器学习·矩阵
西西弗Sisyphus1 小时前
矩阵的左乘和右乘有什么区别
线性代数·矩阵
西西弗Sisyphus2 小时前
满秩分解是怎么把矩阵分解成了两个满秩的矩阵
线性代数·矩阵·初等矩阵·满秩分解
AI科技星2 小时前
为什么宇宙无限大?
开发语言·数据结构·经验分享·线性代数·算法
西西弗Sisyphus11 小时前
线性代数 - 解空间
线性代数·解空间
ChoSeitaku2 天前
线代强化NO19|矩阵的相似与相似对角化
python·线性代数·矩阵
ChoSeitaku2 天前
线代强化NO18|矩阵的相似与相似对角化|概念|性质|判定|矩阵相似
线性代数·矩阵
Hcoco_me2 天前
大模型面试题3:如何计算exp(A) ,其中A为一个矩阵。
线性代数·矩阵
做怪小疯子2 天前
LeetCode 热题 100——矩阵——旋转图像
算法·leetcode·矩阵
passxgx2 天前
11.1 高斯消元法的应用
线性代数·矩阵