您的当前位置:首页正文

【Leetcode】119. 杨辉三角 II(Pascal‘s Triangle II)

2024-11-28 来源:个人技术集锦

一、题目

给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。

在杨辉三角中,每个数是它左上方和右上方的数的和。

二、示例

三、解法

解法-迭代法

#时间:O(n^2)
#空间:O(k)
class Solution:
    def getRow(self, rowIndex: int) -> List[int]:
        def generateRow(last):
            return [1] + [last[i-1] + last[i] for i in range(len(last)) if i!=0 ] + [1]

        if rowIndex == 0:
            return [1]
        elif rowIndex == 1:
            return [1,1]
        elif rowIndex > 1:
            res = [1,1]
            i = 2
            while i <= rowIndex:
                res = generateRow(res)
                i += 1
        return res

四、思路

跟118题类似

从第三行开始(包括)的行可以由上一行的i-1和i叠加而成,开头的1自动继承,末尾注意要添1。

通过不断迭代res得到目标行。

显示全文