【矩阵】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;
    }
}
相关推荐
醒过来摸鱼5 小时前
9.12 sinc插值
python·线性代数·算法·numpy
虹科测试测量7 小时前
德思特干货 | 单通道、多通道衰减器与衰减矩阵:如何选择合适的衰减方案
服务器·测试工具·算法·矩阵
ada7_12 小时前
LeetCode(python)——73.矩阵置零
python·算法·leetcode·矩阵
羑悻的小杀马特12 小时前
远程也能追热点:NewsNow精准筛选热榜,CPolar让信息获取不受地点限制
矩阵·cpolar·热点数据·newsnow
醒过来摸鱼1 天前
9.11 傅里叶变换家族介绍
线性代数·算法·概率论
醒过来摸鱼1 天前
9.8 贝塞尔曲线
线性代数·算法·numpy
xier_ran2 天前
Python 切片(Slicing)完全指南:从基础到多维矩阵
开发语言·python·矩阵
lijil1682 天前
Hypermesh估算发动机缸体质量矩阵
线性代数·矩阵
FanXing_zl2 天前
快速掌握线性代数:核心概念与深度解析
线性代数·算法·机器学习
点云SLAM2 天前
四元数 (Quaternion)微分-四元数导数的矩阵表示推导(8)
线性代数·算法·计算机视觉·矩阵·机器人·slam·四元数