Skip to content

Latest commit

 

History

History
28 lines (20 loc) · 904 Bytes

0119. 杨辉三角 II.md

File metadata and controls

28 lines (20 loc) · 904 Bytes
  • 标签:数组
  • 难度:简单

题目大意

给定一个整数 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