118. Pascal's Triangle

Easy


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:

Input: numRows = 5
Output: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]

Example 2:

Input: numRows = 1
Output: [[1]]

 

Constraints:

  • 1 <= numRows <= 30





class Solution:
    def generate(self, numRows: int) -> List[List[int]]:

        pascal = [[1]*(i+1) for i in range(numRows)]

        for i in range(numRows):
            for j in range(1, i):
                pascal[i][j] = pascal[i-1][j-1]+ pascal[i-1][j]

        return pascal


Random Note


(k := next(iter(d)), d.pop(k)) will remove the leftmost (first) item (if it exists) from a dict object. And if you want to remove the right most/recent value from the dict

d.popitem()