54. 螺旋矩阵

1. 题目

54. 螺旋矩阵 - 力扣(LeetCode)

2. 解题思路

  • 用四个边界变量:
    • left(左边界)
    • right(右边界)
    • up(上边界)
    • down(下边界)
  • 每次按照顺时针方向走一圈:左→右 → 上→下 → 右→左 → 下→上
  • 每走完一条边,就把对应的边界向内收缩。
  • 每次收缩后立刻检查是否交叉(即越界),如果交叉说明遍历完了,就 break

3. 代码

3.1. 完整代码

java 复制代码
class Solution {
    public List<Integer> spiralOrder(int[][] matrix) {
        int m = matrix.length;
        int n = matrix[0].length;

        int left = 0;
        int right = n-1;
        int up = 0;
        int down = m-1;
        List<Integer> res = new ArrayList<>();

        while (true) {
            //1. 从左往右
            for (int i = left; i <= right; i++) {
                //行不变
                res.add(matrix[up][i]);
            }
            up++;
            if (up > down) {
                break;
            }
            //2. 从上往下
            for (int i = up; i <= down; i++) {
                //列不变
                res.add(matrix[i][right]);
            }
            right--;
            if (right < 0 || left > right) {
                break;
            }
            //3. 从右往左
            for (int i = right; i >= left; i--) {
                //行不变
                res.add(matrix[down][i]);
            }
            down--;
            if (down < 0 || up > down) {
                break;
            }
            //4. 从下往上
            for (int i = down; i >= up; i--) {
                //列不变
                res.add(matrix[i][left]);
            }
            left++;
            if (left > right) {
                break;
            }
        }
        return res;

    }
}

3.2. 注意点

相关推荐
_OP_CHEN10 小时前
【算法基础篇】(五十七)线性代数之矩阵乘法从入门到实战:手撕模板 + 真题详解
线性代数·算法·矩阵·蓝桥杯·c/c++·矩阵乘法·acm/icpc
芷栀夏10 小时前
CANN ops-math:从矩阵运算到数值计算的全维度硬件适配与效率提升实践
人工智能·神经网络·线性代数·矩阵·cann
种时光的人20 小时前
CANN仓库核心解读:catlass夯实AIGC大模型矩阵计算的算力基石
线性代数·矩阵·aigc
Zfox_1 天前
CANN Catlass 算子模板库深度解析:高性能矩阵乘(GEMM)原理、融合优化与模板化开发实践
线性代数·矩阵
lbb 小魔仙1 天前
面向 NPU 的高性能矩阵乘法:CANN ops-nn 算子库架构与优化技术
线性代数·矩阵·架构
空白诗1 天前
CANN ops-nn 算子解读:大语言模型推理中的 MatMul 矩阵乘实现
人工智能·语言模型·矩阵
劈星斩月1 天前
线性代数-3Blue1Brown《线性代数的本质》特征向量与特征值(12)
线性代数·特征值·特征向量·特征方程
池央1 天前
ops-nn 算子库中的数据布局与混合精度策略:卷积、矩阵乘法与 RNN 的优化实践
rnn·线性代数·矩阵
深鱼~1 天前
大模型底层算力支撑:ops-math在矩阵乘法上的优化
人工智能·线性代数·矩阵·cann
Zfox_1 天前
CANN PyPTO 编程范式深度解析:并行张量与 Tile 分块操作的架构原理、内存控制与流水线调度机制
线性代数·矩阵·架构