119. Pascal’s Triangle II
Given an index k, return the kth row of the Pascal’s triangle.
For example, given k = 3,
Return [1,3,3,1].
Note:
Could you optimize your algorithm to use only O(k) extra space?
参考: 118. Pascal’s Triangle ,代码稍加修改只输出目标行数就行了
代码:
class Solution:
def generate(self, numRows):
"""
:type numRows: int
:rtype: List[List[int]]
"""
out=[]
for i in range(numRows+1):
out.append([1]*(i+1))
if i >1:
for j in range(1,i):
out[i][j]=out[i-1][j-1]+out[i-1][j]
return out[numRows][:]
更简洁的参考代码:
class Solution:
def getRow(self, rowIndex):
"""
:type rowIndex: int
:rtype: List[int]
"""
res = [1]
for i in range(rowIndex):
res = list(map(lambda x, y: x + y, [0] + res, res + [0]))
return res
其中用到了 map 和 lambda(快速实现函数)。