class Solution: def spiralOrder(self, matrix: List[List[int]]) - List[int]: if not matrix: return [] colslen(matrix[0]) #列 rowslen(matrix) #行 top,bottom0,rows-1 left,right0,cols-1 res[] while topbottom or leftright: for i in range(left,right1): res.append(matrix[top][i]) top1 if topbottom: break for i in range(top,bottom1): res.append(matrix[i][right]) right-1 if leftright: break for i in range(right,left-1,-1): res.append(matrix[bottom][i]) bottom-1 if topbottom:break for i in range(bottom,top-1,-1): res.append(matrix[i][left]) left1 if leftright:break return res思路边界收缩设置top,bottom,left,right四个边界
螺旋矩阵输出数字(python)
class Solution: def spiralOrder(self, matrix: List[List[int]]) - List[int]: if not matrix: return [] colslen(matrix[0]) #列 rowslen(matrix) #行 top,bottom0,rows-1 left,right0,cols-1 res[] while topbottom or leftright: for i in range(left,right1): res.append(matrix[top][i]) top1 if topbottom: break for i in range(top,bottom1): res.append(matrix[i][right]) right-1 if leftright: break for i in range(right,left-1,-1): res.append(matrix[bottom][i]) bottom-1 if topbottom:break for i in range(bottom,top-1,-1): res.append(matrix[i][left]) left1 if leftright:break return res思路边界收缩设置top,bottom,left,right四个边界