---
tags: data_structure_python
---
# Pascal's Triangle II <img src="https://img.shields.io/badge/-easy-brightgreen">
Given a non-negative index k where k ≤ 33, return the kth index row of the Pascal's triangle.
Note that the row index starts from 0.
<ins>**Example:**</ins>
```
Input: 3
Output: [1,3,3,1]
```
**Follow up:**
Could you optimize your algorithm to use only O(k) extra space?
## Solution
### Solution 1: Iterative
```python=
class Solution:
def getRow(self, rowIndex: int) -> List[int]:
row, tmp = [1], [1]
for i in range(1, rowIndex+2):
row = [1]*i
for j in range(0, len(tmp)-1):
row[j+1] = tmp[j] + tmp[j+1]
tmp = row
return row
```
### Solution 2: Recursive
```python=
class Solution:
def getRow(self, rowIndex: int) -> List[int]:
if rowIndex == 0:
return [1]
elif rowIndex == 1:
return [1,1]
else:
prev = self.getRow(rowIndex-1)
curr = [1]*(rowIndex + 1)
for i in range(len(curr)-2):
curr[i+1] = prev[i] + prev[i+1]
return curr
```