力扣题库刷题笔记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` 行的元素。