【leetcode千题】剑指 Offer 29. 顺时针打印矩阵

    科技2022-07-12  130

    输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。

    示例 1:

    输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5] 示例 2:

    输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]] 输出:[1,2,3,4,8,12,11,10,9,5,6,7]

    来源:力扣(LeetCode)

    思路:暴力循环模拟

    class Solution: def spiralOrder(self, matrix: List[List[int]]) -> List[int]: if len(matrix)==0: return [] f = True n = len(matrix[0]) m = len(matrix) x1 = 0 x2 = len(matrix) y1 = 0 y2 = len(matrix[0]) ans = [] while f: for y in range(y1,y2): ans.append(matrix[x1][y]) x1 += 1 if x1 == x2: break for x in range(x1,x2): ans.append(matrix[x][y2-1]) y2 -= 1 if y1==y2: break for y in range(y2-1,y1-1,-1): ans.append(matrix[x2-1][y]) x2 -= 1 if x1 == x2: break for x in range(x2-1,x1-1,-1): ans.append(matrix[x][y1]) y1 +=1 if y1==y2: break if x1 > n/2 or y1 >m/2: f = False return ans
    Processed: 0.010, SQL: 8