# 118. Pascal's Triangle

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

![](https://upload.wikimedia.org/wikipedia/commons/0/0d/PascalTriangleAnimated2.gif)\
In Pascal's triangle, each number is the sum of the two numbers directly above it.

**Example:**

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

#### 解题要点：

层层解法，从上到下走一遍，边走边算。在算每一层时，index0的位置和最尾部的位置都直接设为1，其余的根据上一层的两个数（当前和前一位）进行计算。

```python
class Solution(object):
    def generate(self, numRows):
        """
        :type numRows: int
        :rtype: List[List[int]]
        """
        res = []
        for i in range(numRows):
            temp = [0] * (i+1)
            for j in range(i + 1):
                if j == 0 or j == i:
                    temp[j] = 1
                else:
                    temp[j] = res[i-1][j] + res[i-1][j-1]
            res.append(temp)
        return res
```
