每日一题力扣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时终止。

 

posted @ 2021-03-02 18:45  小千北同学超爱写代码  阅读(88)  评论(0编辑  收藏  举报