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. 注意点

相关推荐
拾贰_C3 小时前
【Linear Mathematics | 线性代数 | Matrix Theory |矩阵论】RREF的Pivot(主元)是什么?怎么找主元?
线性代数·矩阵
拼命鼠鼠15 小时前
【算法】矩阵链乘法的动态规划算法
算法·矩阵·动态规划
式51615 小时前
线性代数(八)非齐次方程组的解的结构
线性代数·算法·机器学习
式5161 天前
线性代数(六)列空间和零空间
线性代数
式5161 天前
线性代数(九)线性相关性、基与维数
线性代数·算法·机器学习
好风凭借力,送我上青云1 天前
Pytorch经典卷积神经网络-----激活函数篇
人工智能·pytorch·深度学习·算法·矩阵·cnn
式5161 天前
线性代数(五)向量空间与子空间
人工智能·线性代数·机器学习
式5161 天前
线性代数(七)主变量与特解
线性代数·算法
跨境摸鱼2 天前
TikTok多账号风控:找对安全支点,解锁规模化运营
大数据·安全·矩阵·重构·跨境电商
咚咚王者2 天前
人工智能之数学基础 线性代数:第五章 张量
人工智能·线性代数