118.楊輝三角(Python)

1291 ワード

タイトル
難易度:★☆☆☆タイプ:配列
負でない整数numRowsが与えられ、楊輝三角の前*numRows*行が生成される.
楊輝三角では、各数は左上と右上の数の和である.

入力:5
出力:
[
     [1],
    [1,1],
   [1,2,1],
  [1,3,3,1],
 [1,4,6,4,1]
]

に答える
この問題は簡単で,簡単なループネストで実現できるが,ここでは初期化過程に注意しなければならない.
class Solution:
    def generate(self, numRows):
        
        if numRows == 0:                                            #    0,  []
            return []

        if numRows == 1:                                            #    1,     
            return [[1]]

        if numRows == 2:                                            #    2,     
            return [[1], [1, 1]]

        res, prev_layer = [[1], [1, 1]], [1, 1]                     #              
        for r in range(2, numRows):
            cur_layer = []                                          #    
            for i in range(0, len(prev_layer)-1):
                cur_layer.append(prev_layer[i]+prev_layer[i+1])     #      
            cur_layer = [1] + cur_layer + [1]                       #       1
            res.append(cur_layer)                                   #        
            prev_layer = cur_layer                                  #              
        return res

質問やアドバイスがあれば、コメントエリアへようこそ~