View Pascal’s Triangle II on LeetCode
Statistics
Time Spent Coding
10 minutes
Time Complexity
O(n) - The algorithm iterates from 0 to rowIndex-1, which were are taking to be n, resulting in the O(n) time complexity.
Space Complexity
O(n) - Again, the algorithm stores rowIndex (n) + 1 elements, and because big-O ignores constants, it results in the O(n) space complexity.
Runtime Beats
90.69% of other submissions
Memory Beats
64.80% of other sumbissions
Explanation
The algorithm replaces the result res
with the ith iteration of the Pascals triangle.
It does this by iterating from 0 to rowIndex,
and each iteration of this loop performs another for a loop.
Inside the for loop, it adds the j
th element and the j+1th appending each addition from 0 to i
.
Since each Pascal triangle beyond case 0 starts and ends with a 1, this is built into the for loop to simplify the logic and the inner for loop.
Once the outer for loop exits, return the res,
which is now equal to the rowIndex of the Pascals triangle.
Solution
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Solution:
def getRow(self, rowIndex: int) -> List[int]:
res = [1]
for i in range(rowIndex):
new_res = [1]
for j in range(i):
new_res.append(res[j] + res[j+1])
new_res.append(1)
res = new_res
return res