题解 | #螺旋矩阵#
螺旋矩阵
https://www.nowcoder.com/practice/7edf70f2d29c4b599693dc3aaeea1d31
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param matrix int整型二维数组 # @return int整型一维数组 # 简单的模拟 class Solution: def spiralOrder(self , matrix: List[List[int]]) -> List[int]: if matrix is None: return None res = [] if len(matrix) == 0 or len(matrix[0]) == 0: return res else: count = len(matrix) * len(matrix[0]) up = 0 down = len(matrix)-1 right = len(matrix[0])-1 left = 0 i = 0 print(matrix) print(count) while count: # and left <= right and up <= down: while left <= i <= right: #if up < len(matrix) and i < len(matrix[0]): # res.append(matrix[up][i]) res.append(matrix[up][i]) i += 1 up += 1 if up > down: break i = up while up <= i and i <= down: res.append(matrix[i][right]) i += 1 right -= 1 if left > right: break i = right while left <= i: res.append(matrix[down][i]) i -= 1 down -= 1 if up > down: break i = down while up <= i: res.append(matrix[i][left]) i -= 1 left += 1 if left > right: break i = left count -= 1 return res