logseq_notes/pages/OJ notes/pages/Leetcode Pascal's-Triangle-II.md
2023-06-14 14:27:22 +08:00

1.4 KiB

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

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:

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

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;
}
};