当前位置:实例文章 » 其他实例» [文章]力扣题库刷题笔记119--杨辉三角II

力扣题库刷题笔记119--杨辉三角II

发布人:shili8 发布时间:2025-02-24 09:58 阅读次数:0

**力扣题库刷题笔记119 -- 杨辉三角 II**

**问题描述**

给定一个非负整数 `n`,返回杨辉三角中第 `n` 行的元素。

**示例**

* 输入:`4`
* 输出:`[1,3,3,1]`

**思路**

本题要求输出杨辉三角中第 `n` 行的元素。我们可以使用动态规划来解决这个问题。

首先,我们需要了解杨辉三角的构造规则:

* 每行的第一列和最后一列都是1。
* 每个元素等于其左上角和右上角元素之和。

基于此,我们可以设计一个函数 `getRow` 来计算第 `n` 行的元素。该函数将使用动态规划来计算每个元素。

**代码**

class Solution:
 def getRow(self, n: int) -> List[int]:
 # 初始化第一行 row = [1]
 # 计算剩余行 for _ in range(n -1):
 # 将上一行的最后一个元素作为当前行的第一个元素 row.insert(0,1)
 # 计算中间元素 for i in range(len(row) -2):
 row[i +1] = row[i] + row[i +2]
 # 将上一行的最后一个元素作为当前行的最后一个元素 row.append(1)
 return row# 测试solution = Solution()
print(solution.getRow(4)) # [1,3,3,1]


**注释**

* `getRow` 函数首先初始化第一行为 `[1]`。
* 然后,函数使用一个循环来计算剩余行。每次循环中,我们将上一行的最后一个元素作为当前行的第一个元素,并计算中间元素。
* 最后,我们将上一行的最后一个元素作为当前行的最后一个元素。

**总结**

本题要求输出杨辉三角中第 `n` 行的元素。我们使用动态规划来解决这个问题,首先初始化第一行,然后计算剩余行。最终,我们返回第 `n` 行的元素。

其他信息

其他资源

Top