题目:
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?
题意:
给定一个下标k,返回杨辉三角的第K行,要求只能使用O(k)个空间
代码:
class Solution(object):
def getRow(self, rowIndex):
"""
:type rowIndex: int
:rtype: List[int]
"""
if rowIndex < 0 :
return []
else :
result = [1] #添加每一行中的第一个1
for i in range(rowIndex) :
result.append(1) #对每一行,先增加末尾的1
for j in range(i,0,-1) : #再从后往前计算下一行的值
result[j] = result[j] + result[j-1]
return result
笔记:
采用从后往前的方法,通过当前行的值计算下一行的值,注意下标的取值
杨辉三角: