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