# 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:

![](https://upload.wikimedia.org/wikipedia/commons/0/0d/PascalTriangleAnimated2.gif)

&#x20;

**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]]
```

&#x20;

**Constraints:**

* `1 <= numRows <= 30`

```python
class Solution:
    def generate(self, numRows: int) -> List[List[int]]:
        arr = [
            [1],
            [1,1],
            [1,2,1]
        ]
        if numRows <= 3:
            return arr[:numRows]
        for i in range(3, numRows):
            newRow = [1]
            for j in range(1, i):
                newRow.append(arr[i-1][j-1] + arr[i-1][j])
            newRow.append(1)
            arr.append(newRow)
        return arr
```
