Skip to main content

118. Pascal's Triangle

https://leetcode.com/problems/pascals-triangle

Python

Recursive

class Solution:
def generate(self, numRows: int) -> List[List[int]]:
if numRows == 1:
return [[1]]
if numRows == 2:
return [[1], [1, 1]]

return self._generate(3, numRows, [[1], [1, 1]])

def _generate(self, level, targetLevel, result):
if level > targetLevel:
return result

pre_level = result[-1]
current = [1]
for i in range(1, len(pre_level)):
pre = pre_level[i-1]
cur = pre_level[i]
current.append(pre+cur)
current.append(1)
result.append(current)

return self._generate(level+1, targetLevel, result)