118. 杨辉三角
问题
给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。
在「杨辉三角」中,每个数是它左上方和右上方的数的和。
示例 1:
输入: numRows = 5
输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]
示例 2:
输入: numRows = 1
输出: [[1]]
解决
其实下一行可以这样算:上一行两边分别加0,然后相加
class Solution:
def generate(self, numRows: int) -> List[List[int]]:
if numRows == 0: return []
res = [[1]]
while len(res) < numRows:
newRow = [a+b for a, b in zip([0]+res[-1], res[-1]+[0])]
res.append(newRow)
return res
本文介绍了一个Python类方法`generate`,用于生成杨辉三角的前numRows行。方法利用while循环,通过将上一行的元素左右两侧加上0并相加,逐行计算得到新的行,直至达到指定行数。
440

被折叠的 条评论
为什么被折叠?



