题解 | #螺旋矩阵#
螺旋矩阵
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