- Pascal's Triangle
**思路:霸蛮做一做还是能做出来的。本题是要写出杨辉三角的每一行的数组。利用前一行数组的第i位+第i+1位=本行的第i+1位数,收尾添1.
class Solution(object):
def generate(self, numRows):
"""
:type numRows: int
:rtype: List[List[int]]
"""
if numRows ==0 :
return []
res = [[1]]
if numRows ==1 :
return res
p = [1,1]
while numRows >= 2:
res.append([node for node in p])
q = []
q.append(1)
for i in range(0,len(p)-1):
q.append(p[i]+p[i+1])
q.append(1)
p =q
numRows -= 1
return res
- Pascal's Triangle II
**思路:由于题目中强调希望能只有O(K)的空间复杂度,那么便依照以往的数组从后往前推来更新的方式,便能不用开辟新的空间来存储新的数组。开始写错了一个地方,range(大数,小数),这样写是不知道依次递减的么?对语法还是不熟练
class Solution(object):
def getRow(self, rowIndex):
"""
:type rowIndex: int
:rtype: List[int]
"""
if rowIndex == 0:
return [1]
if rowIndex == 1:
return [1,1]
p =[0 for i in range(rowIndex+1)]
p[0],p[1] = 1,1
nums = rowIndex-2
while nums >= 0 :
for k in range(rowIndex,0,-1):
p[k] = p[k] + p[k-1]
nums -=1
return p