【力扣日记】118-119 杨辉三角

118 杨辉三角

给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。

算法

class Solution:
    def generate(self, n: int,ls=[],lst=[]) -> List[List[int]]:
        if n==0:return []
        if n==1:return [[1]]
        ls=[[1]]
        while n-1:
            for i in range(len(ls[-1])-1):
                lst.append(ls[-1][i]+ls[-1][i+1])
            lst.insert(0,1);lst.append(1)
            ls.append(lst[:])
            lst.clear()
            n-=1
        return ls

执行用时 :28 ms, 在所有 Python3 提交中击败了90.07%的用户
内存消耗 :13.4 MB, 在所有 Python3 提交中击败了43.67%的用户

119 杨辉三角II

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

算法

class Solution:
    def getRow(self, rowIndex: int):
        if rowIndex==0:return [1]
        ls=[1,1]
        while rowIndex-1>0:
            i,tmp=0,[]
            rowIndex-=1
            while i<len(ls)-1:
                tmp+=[ls[i]+ls[i+1]]
                i+=1
            ls=[1]+tmp+[1]
        return ls

执行用时 :20 ms, 在所有 Python3 提交中击败了99.48%的用户
内存消耗 :13.3 MB, 在所有 Python3 提交中击败了47.36%的用户

class Solution:
    def getRow(self, rowIndex,p=[1]):
        for j in range(rowIndex):p = [1] + [p[i]+p[i+1] for i in range(len(p)-1)] +[1]
        return p
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章