给定一个非负索引 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得到目标行。