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、3 = 2 + 1 です。5行目では、4 = 1 + 3、6 = 3 + 3、4 = 3 + 1 です。

lock icon提出時に隠しテスト+13件

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]]