这道题比较简单。只需要上一行的第一个元素加第二个元素得到下一行的第二个元素,然后往后依次运算。两边都是1.
我的解法也是很简单,先处理三类特殊情况,即给的数值为0,1,2这三种特殊情况。
class Solution:
def generate(self, numRows: int) -> List[List[int]]:
if numRows == 0:
return []
if numRows == 1:
return [[1]]
if numRows == 2:
return [[1], [1,1]]
res = [[1], [1,1]]
last = res[1]
for i in range(2, numRows):
tmp = [1] * (i + 1)
for j in range(1, i):
tmp[j] = last[j-1] + last[j]
res.append(tmp)
last = tmp
return res