notes/OJ notes/pages/Leetcode Pascal's-Triangle-II.md
2022-09-03 15:41:36 +08:00

96 lines
1.4 KiB
Markdown

# Leetcode Pascal's-Triangle-II
2022-09-02 14:54
> ##### Algorithms:
>
> #algorithm #recursion
>
> ##### Data structures:
>
> #DS #array
>
> ##### Difficulty:
>
> #coding_problem #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.
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;
}
};
```