Menu
CoddyTech

Pascal's Triangle

简单动态规划python iconjava iconcpp iconc iconjs icon+10

在 Pascal's triangle 中,第一行是 [1]。后面的每一行都比上一行多一个元素,以 1 开头和结尾,中间的每个元素都是正上方两个元素的和。你会得到一个整数 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]]
解释
每个内部项都是其上方两个数相加的结果。第四行:3 = 1 + 2,3 = 2 + 1。第五行:4 = 1 + 3,6 = 3 + 3,4 = 3 + 1。
challenge icon

进阶

你能否只保留一个数组,并逐行就地更新它?内层循环必须按什么方向运行,为什么?

重置代码
def generate(numRows):
    # 在这里编写代码

测试 #1

测试 #2

参数

numRows = 5

预期输出

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