【LeetCode】118. Pascal‘s Triangle 解題報告(Python)

給定一個非負整數 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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章