Menu
CoddyTech

Pascal's Triangle

やさしい動的計画法python iconjava iconcpp iconc iconjs icon+10

パスカルの三角形では、最初の行は [1] です。それ以降の各行は要素が1つ多く、1で始まり1で終わります。その間の各要素は、真上にある2つの要素の和です。整数 numRows が与えられます。三角形の最初の numRows 行を、最上段から順に、各行を整数の配列として返してください。

関数

generate(numRows: integer) → integer-2d-array
numRowsinteger
三角形を作る行数
戻り値integer-2d-array
最初のnumRows行(最上段から)

制約

  • 1 ≤ numRows ≤ 30
  • 最初の30行の各項目は、32ビット符号付き整数に収まります。最大値は77558760で、30行目の中央にあります。

例

入力
numRows = 5
出力
[[1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1]]
説明
各内側の要素は、その上にある2つの要素を足したものです。4行目: 3 = 1 + 2 and 3 = 2 + 1。5行目: 4 = 1 + 3, 6 = 3 + 3, 4 = 3 + 1。
challenge icon

発展問題

配列を1つだけ使い、行ごとにその場で更新できますか?内側のループはどちら向きに実行する必要がありますか?その理由は何ですか?

コードをリセット
def generate(numRows):
    # ここにコードを書いてください

テスト #1

テスト #2

引数

numRows = 5

期待される出力

[[1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1]]