給定一個非負整數 numRows,生成楊輝三角的前 numRows 行。
在楊輝三角中,每個數是它左上方和右上方的數的和。
解題思路:
可以看出來每一行除了開始和結尾的1,其他位置元素都與上一行有關,那這就讓我想到了動態規劃
這一行的值=上一行的上一列+上一行的這一列元素,即dp[i][j] = dp[i-1][j-1] + dp[i-1][j]
提交代碼:(動態規劃,Runtime: 40 ms, faster than 65.14 % )
class Solution:
def generate(self, numRows: int) -> 'List[List[int]]':
if numRows == 0: return []
if numRows == 1: return [[1]]
dp = [[1],[1,1]]
for i in range(2, numRows):
t = [1]
for j in range(1,i):
t.append(dp[i-1][j-1] + dp[i-1][j])
t.append(1)
dp.append(list(t))
return dp