题目:
例子:
输入: 5
输出:
[
[1],
[1,1],
[1,2,1],
[1,3,3,1],
[1,4,6,4,1]
]
思想:
- 采用动态规划思想,每一层的元素需要上一层的元素
- 每行的两端都是1
- 每行的元素是:R[i][j] = R[i-1][j-1] + R[i-1][j]
代码:
class Solution:
def generate(self, num_rows): # num_rows为行数
triangle = [] # 定义结果列表
for row_num in range(num_rows): # 遍历所有行:
row = [None for _ in range(row_num+1)] # 先写一个元素都为None的杨辉三角形
row[0], row[-1] = 1, 1 # 将每一行的两端变为1
for j in range(1, len(row)-1): # 填写中间元素
row[j] = triangle[row_num-1][j-1] + triangle[row_num-1][j]
triangle.append(row) # 不断的将每一行放进结果列表中
return triangle
中间过程打印出来看,就很清楚