Source: Pascal’s Triangle - LeetCode
In Pascal’s triangle, each number is the sum of the two numbers directly above it
每一行的首个和结尾一个数字都是1,从第三行开始,中间的每个数字都是上一行的左右两个数字之和
状态转移方程
f ( i , j ) = f ( i − 1 , j ) + f ( i − 1 , j − 1 ) f(i,j)=f(i-1,j)+f(i-1,j-1) f(i,j)=f(i−1,j)+f(i−1,j−1)
题解
class Solution:
def generate(self, numRows: int) -> List[List[int]]:
ls = [[1] * i for i in range(1, numRows + 1)]
for i in range(2,numRows):
for j in range(1,i):
ls[i][j]=ls[i-1][j-1]+ls[i-1][j]
return ls