题目
Given a non-negative index k where k ≤ 33, return the kthkth index row of the Pascal’s triangle.
Note that the row index starts from 0.
In Pascal’s triangle, each number is the sum of the two numbers directly above it.
Example:
Input: 3
Output: [1,3,3,1]
Follow up:
Could you optimize your algorithm to use only O(k) extra space?
代码
def getRow(rowIndex):
"""
:type rowIndex: int
:rtype: List[int]
"""
# 整个三角形左右是对称的,上一行左边加0,上一行右边加0,两个加起来就是下一行
row = [1]
print([0]+row)
print(row+[0])
for _ in range(rowIndex):
row = [x + y for x, y in zip([0] + row, row + [0])]
print(row)
return row
def getRow2(rowIndex):
"""
:type rowIndex: int
:rtype: List[int]
"""
cur = [1] * (rowIndex + 1)
for i in range(1, rowIndex + 1):# 1234
print("i==",i)
for j in range(i - 1, 0, -1):# 2 0 -1
print("j==",j)
cur[j] = cur[j] + cur[j - 1]
print(cur)
return cur
def getRow3(rowIndex):
res=[[1]]
for i in range(1,rowIndex+1):
res+=[map(lambda x,y:x+y,res[-1]+[0],[0]+res[-1])]
return res[rowIndex]