54. 螺旋矩阵

Problem: 54. 螺旋矩阵

文章目录

思路

螺旋矩阵,从左到右、从上到下、从右到左、从下到上,四个方向循环遍历矩阵,需要控制上下左右这四个角。每遍历完成一个方向后,收缩该方向。

  • 完成从左到右时:上-=1
  • 完成从上到下时:右-=1
  • 完成从右到左时:下-=1
  • 完成从下到上时:左+=1

解题方法

模拟

复杂度

时间复杂度: O ( m ∗ n ) O(m * n) O(m∗n) 矩阵每个元素只遍历一次

空间复杂度: O ( m ∗ n ) O(m * n) O(m∗n) 矩阵元素个数

Code

Python3 复制代码
class Solution:
    def spiralOrder(self, matrix: List[List[int]]) -> List[int]:
        if not matrix: return []

        l, r, t, b = 0, len(matrix[0]) - 1, 0, len(matrix) - 1

        res = []

        while True:
            # 从左到右
            for i in range(l, r + 1):
                res.append(matrix[t][i])
            t += 1
            if t > b: break

            # 从上到下
            for i in range(t, b + 1):
                res.append(matrix[i][r])
            r -= 1
            if l > r: break

            # 从右到左
            for i in range(r, l - 1, -1):
                res.append(matrix[b][i])
            b -= 1
            if t > b: break

            # 从下到上
            for i in range(b, t - 1, -1):
                res.append(matrix[i][l])
            l += 1
            if l > r: break

        return res
相关推荐
学习论之费曼学习法14 小时前
无人值守AI内容矩阵实战(8):标题 A/B 实验的 6 个工程实现细节,隔日对比与自动判胜
人工智能·python·算法·矩阵·自动化·a/b测试·内容矩阵
晒太羊的猫18 小时前
hot100矩阵问题
线性代数·矩阵
轻口味21 小时前
启元无真机二开实战1:54 个接口能做什么、不能做什么——启元 Q1/T1 SDK 能力全景与版本矩阵
线性代数·矩阵·ros2·具身智能·启元机器人
Angel Q.2 天前
协方差矩阵:3DGS 里“椭球的形状说明书“
线性代数·3d·矩阵
BSD_HY3 天前
智能家居中控面板的结构暗战:薄膜开关为什么还没退场
矩阵·智能家居·薄膜开关·源头工厂
茉莉玫瑰花茶3 天前
线性代数 [ 矩阵与线性变化 ]
线性代数·math·1024程序员节
茉莉玫瑰花茶3 天前
线性代数 [ 矩阵乘法与线性变换复合的联系 ]
python·线性代数·math
莫叫石榴姐4 天前
半导体业务数仓建模: Lot、Wafer、Die、Recipe、OEE、YMS 建模要点
数据仓库·sql·面试·职场和发展·矩阵·1024程序员节
茉莉玫瑰花茶4 天前
线性代数 [ 序言 ]
线性代数·math·1024程序员节
茉莉玫瑰花茶4 天前
线性代数 [ 线性组合·张成的空间与基 ]
线性代数·math·1024程序员节