题解 | #螺旋矩阵#

螺旋矩阵

https://www.nowcoder.com/practice/7edf70f2d29c4b599693dc3aaeea1d31

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param matrix int整型二维数组 
# @return int整型一维数组
class Solution:
    def spiralOrder(self , matrix: list[list[int]]) -> list[int]:
        if not matrix:
            return matrix
        if len(matrix[0]) == 1: # 只有一列
            res = []
            for i in range(len(matrix)):
                res.append(matrix[i][0])
            return res
        res = matrix[0]
        i = len(matrix)-1 # 行-1
        j = len(matrix[0])-1 # 列-1
        m, n = 0, len(matrix[0])-1 # 第一行最后一个

        while i > 0 and j >= 0:
            # 下左上右
            for _ in range(i):
                m += 1
                res.append(matrix[m][n])
            for _ in range(j):
                n -= 1
                res.append(matrix[m][n])
            i -= 1
            j -= 1
            if i == 0 or j < 0:
                break
            for _ in range(i):
                m -= 1
                res.append(matrix[m][n])
            for _ in range(j):
                n += 1
                res.append(matrix[m][n])
            i -= 1
            j -= 1
        return res

全部评论

相关推荐

面试摇了我吧:啊哈哈面试提前五个小时发,点击不能参加就是放弃
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务