给定一个非负整数 numRows
,生成「杨辉三角」的前 numRows
行。
在「杨辉三角」中,每个数是它左上方和右上方的数的和。
例:
输入: numRows = 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]
解析:
大于等于2行以后,出去两边的值,中间的值等于前面一行对应两个值的和。
class Solution(object):def generate(self, numRows):""":type numRows: int:rtype: List[List[int]]"""res = [] # 结果for i in range(numRows):now = [1]*(i+1) # 初始化每一行if i >= 2: # 从第三行开始for n in range(1, i): # 两边的值仍然为1now[n] = pre[n-1]+pre[n]res += [now] # 将结果存入pre = now # 存储上一行的信息return res # 返回结果