题目
Given a non-negative index k where k ≤ 33, return the kth k t h 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]