2022-09-02 15:02:08 +08:00
|
|
|
# Leetcode Pascal's-Triangle-II
|
|
|
|
|
|
|
|
2022-09-02 14:54
|
|
|
|
|
|
|
|
> ##### Algorithms:
|
2022-09-03 15:41:36 +08:00
|
|
|
>
|
2022-09-02 15:02:08 +08:00
|
|
|
> #algorithm #recursion
|
2022-09-03 15:41:36 +08:00
|
|
|
>
|
2022-09-02 15:02:08 +08:00
|
|
|
> ##### Data structures:
|
2022-09-03 15:41:36 +08:00
|
|
|
>
|
2022-09-02 15:02:08 +08:00
|
|
|
> #DS #array
|
2022-09-03 15:41:36 +08:00
|
|
|
>
|
2022-09-02 15:02:08 +08:00
|
|
|
> ##### Difficulty:
|
2022-09-03 15:41:36 +08:00
|
|
|
>
|
2022-09-06 20:22:48 +08:00
|
|
|
> #coding_problem #difficulty_easy
|
2022-09-03 15:41:36 +08:00
|
|
|
>
|
2022-09-02 15:02:08 +08:00
|
|
|
> ##### Additional tags:
|
2022-09-03 15:41:36 +08:00
|
|
|
>
|
|
|
|
> #leetcode
|
|
|
|
>
|
2022-09-02 15:02:08 +08:00
|
|
|
> ##### Revisions:
|
2022-09-03 15:41:36 +08:00
|
|
|
>
|
2022-09-02 15:02:08 +08:00
|
|
|
> N/A
|
|
|
|
|
|
|
|
##### Links:
|
2022-09-03 15:41:36 +08:00
|
|
|
|
2022-09-02 15:02:08 +08:00
|
|
|
- [Link to problem](https://leetcode.com/problems/pascals-triangle-ii/)
|
2022-09-03 15:41:36 +08:00
|
|
|
|
|
|
|
---
|
|
|
|
|
2022-09-02 15:02:08 +08:00
|
|
|
### 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.
|
2022-09-08 16:18:59 +08:00
|
|
|
>
|
2022-09-08 16:10:06 +08:00
|
|
|
> Follow up of [[Leetcode Pascal's-Triangle]]
|
2022-09-02 15:02:08 +08:00
|
|
|
|
|
|
|
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;
|
|
|
|
}
|
|
|
|
};
|
2022-09-03 15:41:36 +08:00
|
|
|
```
|