每日一题力扣54
给你一个 m
行 n
列的矩阵 matrix
,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。
正解:
class Solution: def spiralOrder(self, matrix: List[List[int]]) -> List[int]: if not matrix: return [] m, n = len(matrix), len(matrix[0]) # 行,列 res=[] i,j=0,-1 ju=1 while m > 0 and n > 0: for x in range(n): j+=ju res.append(matrix[i][j])#向右走 for y in range(m-1):#向下走,这里要注意,0开头的往下走只能走m-1 i+=ju res.append(matrix[i][j]) m=m-1 n=n-1 ju*=-1 return res # 1. 横向遍历m,纵向遍历n-1; # 2. 横向遍历m-1,纵向遍历n-2; # 3. 横向遍历m-2,纵向遍历n-3; # 4. 直到有一方向遍历长度为0时终止。