The challenge

Given an integer numRows, return the first numRows of Pascal’s triangle.

In Pascal’s triangle, each number is the sum of the two numbers directly above it as shown:

Example 1:

Example 2:

Constraints:

  • 1 <= numRows <= 30

The solution in Python code

class Solution:
    def generate(self, numRows: int) -> List[List[int]]:
        triangle = [[1]]
        
        for j in range(1, numRows):
            prev = triangle[-1]
            triangle.append([1] + [prev[i]+prev[i+1] for i in range(len(prev)-1)] + [1])
            
        return triangle