Leetcode 118.杨辉三角
1 题目描述(Leetcode题目链接)
给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。在杨辉三角中,每个数是它左上方和右上方的数的和。
输入: 5
输出:
[
[1],
[1,1],
[1,2,1],
[1,3,3,1],
[1,4,6,4,1]
]
2 题解
直接构造。
class Solution:
def generate(self, numRows: int) -> List[List[int]]:
if not numRows:
return []
retv = [[1],]
for i in range(2, numRows+1):
level = [1]
for j in range(1, i-1):
level.append(retv[i-2][j] + retv[i-2][j-1])
level.append(1)
retv.append(level)
return retv
class Solution:
def generate(self, numRows: int) -> List[List[int]]:
res = [[1]]
while len(res) < numRows:
res.append([a+b for a,b in zip(res[-1]+[0], [0]+res[-1])])
return res if numRows else []