119. Pascal's Triangle II
Description
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:
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
Follow up: Could you optimize your algorithm to use only O(rowIndex) extra space?
Solutions
Solution 1: Recursion
We create an array \(f\) of length \(rowIndex + 1\), initially all elements are \(1\).
Next, starting from the second row, we calculate the value of the \(j\)th element in the current row from back to front, \(f[j] = f[j] + f[j - 1]\), where \(j \in [1, i - 1]\).
Finally, return \(f\).
The time complexity is \(O(n^2)\), and the space complexity is \(O(n)\). Here, \(n\) is the given number of rows.
1 2 3 4 5 6 7 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
1 2 3 4 5 6 7 8 9 10 11 12 | |
1 2 3 4 5 6 7 8 9 10 11 12 | |
1 2 3 4 5 6 7 8 9 | |
1 2 3 4 5 6 7 8 9 10 11 12 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
