notes/OJ notes/pages/Leetcode Pascal's-Triangle-II.md
2022-09-06 20:22:48 +08:00

1.4 KiB

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


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.

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