パスカルの三角形leetcode118

1  「」 " 
2  。考えるAの負でない整数numRowsの数は、パスカルAPOSの最初numRowsの数トライアングル生成
 。3  においてパスカルAPOS三角形は、各番号は直接上に2つの数の和である。
 4。 例:
 5  入力:. 5
 6。 出力:
 7  [
 8       [1]、
 9      [1,1]、
 10     [1,2,1]、
 11    [1,3,3,1]、
 12  [1,4,6,4,1]
 13  ]
 14  "" 「
15  」「」
16  ソリューション:
 17  AC所有に書き込む
 18は ストレート、最初の行、第二行は別々のうち議論行く
 19  の法則に従って第三の循環ライン後の
20  ""」
21  クラス解決法1:
 22      DEF (自己、numRowsの数)を生成する:
 23          であれば numRowsの数<= 0:
 24              リターン[]
 25          なら numRowsの数== 1 26              戻り [[1 ]]
 27の          RES = [1]、 [1、1 ]]
 28          もし numRowsの数== 2 29              戻りRES
 30          キュー= [1、1 ]
 31          ながら numRowsの数- 2 32              TEMP = [1 ]
 33              のためのI における範囲(LEN(キュー)-1 ):
 34である                  temp.append(キュー[I] +キュー[I + 1 ])
 35              temp.append(1 36              res.append(TEMP)
 37 [              キュー= TEMP
 38は              numRowsの数- 。1 =
 39          のリターンはRES
 40  "「」
41がある 解決策2:マップ機能(自身が知られているこの機能ではなく、考えても使用することができ、これは兄のギャップである)
 42を 前に、それぞれの新しい行が0を追加した後、次のまで追加します線
 43は、   0。3. 1. 1
 44は + +1 3. 3. 1 0。
 45  = 1. 1. 4. 4 6。
 46である "" " 
47  クラスソリューション:
 48      DEF(セルフ、numRowsの数:int)を生成する- > リスト[リスト[INT]:
 49          IF numRowsの数== 0
 50              リターン[]
 51は          RES = [[1 ]]
 52である         ため、I (1レンジ、numRowsの数):
 53である              RES .append(リスト(MAP(ラムダ X、Y:X + Y、RES [-1] + [0]、[0] + RES [-1 ])))
 54は、             マップ(関数、リスト1、LIST2)
55              RES [-1]前と0添加した後、現在の最後の行を表し
ている56                0 3. 3. 1. 1 
57は             + +1。3. 3. 1 0 
58              =。1. 1. 4. 4. 6 
59          リターンRES
 60          '+'は、同じ機能を延び、組み合わせ[] + [] = [] 
61である         [追加オブジェクトの新しい端部を追加することである] .append([])= []

 

おすすめ

転載: www.cnblogs.com/yawenw/p/12375446.html