# Leetcode Pascal's-Triangle-II

2022-09-02 14:54

> ##### Algorithms:
>
> #algorithm #recursion
>
> ##### Data structures:
>
> #DS #array
>
> ##### Difficulty:
>
> #coding_problems #difficulty_easy
>
> ##### Additional tags:
>
> #leetcode
>
> ##### Revisions:
>
> N/A

##### Links:

- [Link to problem](https://leetcode.com/problems/pascals-triangle-ii/)

  ***

### Problem

Given an integer `rowIndex`, return the `rowIndexth` (**0-indexed**) row of the **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)

#### Examples

**Example 1:**

**Input:** rowIndex = 3
**Output:** [1,3,3,1]

**Example 2:**

**Input:** rowIndex = 0
**Output:** [1]

**Example 3:**

**Input:** rowIndex = 1
**Output:** [1,1]

#### Constraints

- `0 <= rowIndex <= 33`

### Thoughts

> [!summary]
> This is a #recursion problem.
>
> Follow up of [[Leetcode Pascal's-Triangle]]

Because to get the nth row, we have to get the `n - 1` th
row, we use recursion.

### Solution

```cpp
class Solution {
public:
vector<int> getRow(int rowIndex) {
  // recursion

  if (rowIndex == 0) {
    return {1};
  }

  auto last = getRow(rowIndex - 1);

  vector<int> ans;

  ans.push_back(1);

  for (int i = 1; i < rowIndex; i++) {
    ans.push_back(last[i] + last[i - 1]);
  }

  ans.push_back(1);

  return ans;
}
};
```
