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