classSolution:"""
54. 螺旋矩阵
给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。
"""defspiralOrder(self, matrix: List[List[int]])-> List[int]:# 思路:顺时针,上右下左依次遍历边界,并向内移动边界,当上边界低于下边界,# 或者右边界小于左边界,终止遍历# 1. 初始化及特殊处理
row, col =len(matrix),len(matrix[0])
l,r,t,d =0, col-1,0, row-1
res =[]# 2. 遍历处理,关键点,外层是while循环比较特殊,终止条件为True,靠内部break中断whileTrue:for i inrange(l, r+1):
res.append(matrix[t][i])
t = t +1if t > d:breakfor i inrange(t, d+1):
res.append(matrix[i][r])
r = r -1if r < l:breakfor i inrange(r, l-1,-1):
res.append(matrix[d][i])
d = d -1if d < t:breakfor i inrange(d, t-1,-1):
res.append(matrix[i][l])
l = l +1if l > r:break# 3. 返回结果return res