- 标签:数组
- 难度:简单
给定一个整数 k(k ≤ 33),返回杨辉三角的第 k 行。要求使用 O(k) 的空间复杂度。
使用一个数组,进行两重循环遍历。先遍历 k 行,再对每一行每个位置上的元素进行逆序赋值计算。每行遍历时,将数组两侧元素赋值为 1,即 ans[j] = 1。中间值为之前元素前两个位置之和,即 ans[j] = ans[j-1] + ans[j]。
class Solution:
def getRow(self, rowIndex: int) -> List[int]:
ans = [0]*(rowIndex+1)
for i in range(rowIndex+1):
for j in range(i, -1, -1):
if j == 0 or j == i:
ans[j] = 1
else:
ans[j] = ans[j-1] + ans[j]
return ans