1.个人所做代码
class Solution:
def generate(self, numRows):
"""
:type numRows: int
:rtype: List[List[int]]
"""
tranList = []
for i in range(0, numRows):
tranList.append([])
for k in range(0, numRows):
tranList[k].append(1)
for i in range(1, k):
if i != k:
tranList[k].append(tranList[k-1][i-1] + tranList[k-1][i])
if k != 0:
tranList[k].append(1)
return tranList
2.他人的用时更短版本(记录一下)
class Solution:
def generate(self, numRows):
a=[[1]]
if numRows==0:
return []
while numRows-1:
a.append([e1 + e2 for (e1,e2) in zip(a[-1]+[0],[0]+a[-1]) ])
numRows-=1
return a
(1)zip()在py3中返回的是一个对象,需用list()强转才能直观显示
(2)杨辉三角形的第一行为1,第二行为11,第三行可看作是110 + 011 = 121,第四行可看作是1210+0121 = 1331……依此类推
(3)每一轮循环添加一个新行