54. Spiral Matrix

博客围绕螺旋矩阵题目展开,给出题目链接https://leetcode.com/problems/spiral-matrix/ ,分享了相关代码及思路,还提及参考链接https://leetcode.com/problems/spiral-matrix/discuss/20571/1-liner-in-Python-%2B-Ruby ,并说明了代码二采用普通剪枝思维。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目链接:https://leetcode.com/problems/spiral-matrix/

代码

class Solution:
    def spiralOrder(self, matrix: List[List[int]]) -> List[int]:
        return matrix and [*matrix.pop(0)] + self.spiralOrder([*zip(*matrix)][::-1])

思路

在这里插入图片描述
在这里插入图片描述
被别人的思路秒杀,甚是欣赏
参考链接:https://leetcode.com/problems/spiral-matrix/discuss/20571/1-liner-in-Python-%2B-Ruby

代码二

class Solution:
    def spiralOrder(self, matrix):
        if not matrix:return matrix
        row,col=len(matrix)-1,len(matrix[0])-1
        i,j=0,0
        result=[]
        while i <= row and j<= col :
            result+=matrix[i][j:col+1]
            i+=1
            if i > row : break
            for k in range(i,row+1):
                result.append(matrix[k][col])
            col-=1
            if j > col : break
            for k in range(col,j-1,-1):
                result.append(matrix[row][k])
            row-=1
            for k in range(row,i-1,-1):
                result.append(matrix[k][j])
            j+=1
        return result

思路说明:这个相对来说比较普通的剪枝思维

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值