m:1" />

日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

python(leetcode)498. 對角線遍歷

系統 2030 0

這題難度中等,記錄下思路

第一個會超時,

第二個:思想是按斜對角線行進行右下左上交替遍歷,

            
               1
            
            
              def
            
            
               traverse(matrix):

            
            
               2
            
                 n=len(matrix)-1

            
               3
            
                 m=len(matrix[0])-1

            
               4
            
                 result=
            
              []

            
            
               5
            
            
              for
            
             i 
            
              in
            
             range(m+n+1
            
              ):

            
            
               6
            
            
              if
            
            (i % 2 ==
            
               0):

            
            
               7
            
            
              for
            
             j 
            
              in
            
             range(i, -1, -1
            
              ):

            
            
               8
            
                                 x=
            
              j

            
            
               9
            
                                 y=i-
            
              x

            
            
              10
            
            
              if
            
             x <= n 
            
              and
            
             y <=
            
               m:

            
            
              11
            
            
                                      result.append(matrix[x][y])

            
            
              12
            
            
              #
            
            
               elif y > m:
            
            
              13
            
            
              #
            
            
                   break
            
            
              14
            
            
              else
            
            
              :

            
            
              15
            
            
              continue
            
            
              16
            
            
              else
            
            
              :

            
            
              17
            
            
              for
            
             j 
            
              in
            
             range(i, -1, -1
            
              ):

            
            
              18
            
                                 y=
            
              j

            
            
              19
            
                                 x=i-
            
              y

            
            
              20
            
            
              if
            
             x <= n 
            
              and
            
             y <=
            
               m:

            
            
              21
            
            
                                      result.append(matrix[x][y])

            
            
              22
            
            
              #
            
            
               elif x > n:
            
            
              23
            
            
              #
            
            
                   break
            
            
              24
            
            
              else
            
            
              :

            
            
              25
            
            
              continue
            
            
              26
            
            
              return
            
            
               result

            
            
              27
            
            
              28
            
            
              if
            
            
              __name__
            
             == 
            
              '
            
            
              __main__
            
            
              '
            
            
              :

            
            
              29
            
                 ma=
            
              [

            
            
              30
            
              [ 1, 2, 3
            
               ],

            
            
              31
            
              [ 4, 5, 6
            
               ],

            
            
              32
            
              [ 7, 8, 9
            
               ]

            
            
              33
            
            
              ]

            
            
              34
            
            
              print
            
            (traverse(ma))
          

?

11

            
               1
            
            
              def
            
            
               diagonial(matrix):

            
            
               2
            
                 m=
            
              len(matrix)

            
            
               3
            
                 n=
            
              len(matrix[0])

            
            
               4
            
            
              #
            
            
              思想是按斜對角線行進行遍歷
            
            
               5
            
            
              #
            
            
              遍歷的方向右下,左上交替進行
            
            
               6
            
                 line=
            
              0

            
            
               7
            
                 res=
            
              []

            
            
               8
            
                 tem=
            
              []

            
            
               9
            
                 is_sure=
            
              True

            
            
              10
            
            
              #
            
            
              對每一行進行循環 斜對角線有m+n-1條
            
            
              11
            
            
              while
            
             line<(m+n-1
            
              ):

            
            
              12
            
            
              #
            
            
              設置起點
            
            
              13
            
            
              if
            
            (line<
            
              m):

            
            
              14
            
                         x=
            
              line

            
            
              15
            
                         y=
            
              0

            
            
              16
            
            
              else
            
            
              :

            
            
              17
            
                         x=m-1

            
              18
            
                         y=line-m-1

            
              19
            
            
              #
            
            
              每行循環幾次
            
            
              20
            
            
              #
            
            
              因為都是從右上開始,所以設置條件x>0,y
              
            
            
              21
            
            
              while
            
             x>=0 
            
              and
            
             y <
            
              n:

            
            
              22
            
            
              #
            
            
               存儲斜行的元素
            
            
              23
            
            
                          tem.append(matrix[x][y])

            
            
              24
            
                         x-=1

            
              25
            
                         y+=1

            
              26
            
            
              #
            
            
              如果是左下開始,則反向添加
            
            
              27
            
            
              if
            
            
              (is_sure):

            
            
              28
            
            
                          tem.reverse()

            
            
              29
            
            
              for
            
             num 
            
              in
            
            
               tem:

            
            
              30
            
            
                          res.append(num)

            
            
              31
            
                     line+=1

            
              32
            
            
              return
            
            
               res

            
            
              33
            
            
              34
            
            
              35
            
            
              if
            
            
              __name__
            
             == 
            
              '
            
            
              __main__
            
            
              '
            
            
              :

            
            
              36
            
                 matrix=
            
              [

            
            
              37
            
              [ 1, 2, 3
            
               ],

            
            
              38
            
              [ 4, 5, 6
            
               ],

            
            
              39
            
              [ 7, 8, 9
            
               ]

            
            
              40
            
            
              ]

            
            
              41
            
            
              print
            
            (diagonial(matrix))
          

?


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 文山县| 邯郸县| 芜湖县| 始兴县| 唐海县| 老河口市| 安福县| 通河县| 新晃| 咸宁市| 灵山县| 浦江县| 浮山县| 普格县| 黑河市| 大埔区| 天台县| 台江县| 浮山县| 东阿县| 镇安县| 崇礼县| 南乐县| 株洲市| 喜德县| 铜梁县| 华池县| 化隆| 红桥区| 盘山县| 中阳县| 房山区| 晋州市| 冕宁县| 炎陵县| 平泉县| 六枝特区| 深圳市| 寿宁县| 房产| 什邡市|