## Problem Statement

Given a non-negative integer *numRows*, generate the first *numRows* of Pascal's triangle.

In Pascal's triangle, each number is the sum of the two numbers directly above it.

**Example:**

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

**Solution:**

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