0119. 杨辉三角 II

0119. 杨辉三角 II #

  • 标签:数组
  • 难度:简单

题目大意 #

给定一个整数 k(k ≤ 33),返回杨辉三角的第 k 行。要求使用 O(k) 的空间复杂度。

解题思路 #

使用一个数组,进行两重循环遍历。先遍历 k 行,再对每一行每个位置上的元素进行逆序赋值计算。每行遍历时,将数组两侧元素赋值为 1,即 ans[j] = 1。中间值为之前元素前两个位置之和,即 ans[j] = ans[j-1] + ans[j]。

代码 #

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
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
本站总访问量  次  |  您是本站第  位访问者