【leetcode100】杨辉三角

1、题目描述

给定一个非负整数 numRows, 生成「杨辉三角」的前 *numRows*行。

在「杨辉三角」中,每个数是它左上方和右上方的数的和。

示例 1:

复制代码
输入: numRows = 5
输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]

示例 2:

复制代码
输入: numRows = 1
输出: [[1]]

2、初始思路

2.1 思路

使用动态规划

1、确定dp数组及其含义

dp数组表示的是杨辉三角各个点的值

2、确定递推公式

题目中已经给出"在「杨辉三角」中,每个数是它左上方和右上方的数的和。",因此,递推公式可表示为:

复制代码
dp[i][j] = dp[i-1][j-1] + dp[i-1][j]

3、初始化dp数组

通过观察,可以将杨辉三角初始化为每层递加的1,如下:

复制代码
dp = [[1] * (i+1) for i in range(numRows)]

2.2 完整代码

复制代码
class Solution:
    def generate(self, numRows: int) -> List[List[int]]:
        dp = [[1]*(i+1) for i in range(numRows)]
        for i in range(2,numRows):
            for j in range(1,i):
                dp[i][j] = dp[i-1][j-1] + dp[i-1][j]
        return dp
相关推荐
言乐68 小时前
HTML视频审核模型
python·django·virtualenv·pygame·tornado
随意起个昵称8 小时前
【背包dp】输出方案路径
c++·动态规划
言乐69 小时前
Python根据无法识别搜索词找出可能输入内容模型
开发语言·python·django·virtualenv·pygame
yl453010 小时前
硫酸泄露处理生产商怎么选才够专业
大数据·人工智能·python
笨笨饿10 小时前
140_AI新手村MCP与Skills是干嘛的
开发语言·人工智能·python·stm32·单片机·嵌入式硬件·物联网
Navigator_Z10 小时前
LeetCode //C - 1278. Palindrome Partitioning III
c语言·算法·leetcode
for_ever_love__10 小时前
机器学习入门——手写线性回归与梯度下降
人工智能·python·学习·机器学习·线性回归
打工仔折腾 AI11 小时前
从 Demo 到生产级 Agent:8 个关键设计机制与 Python 实现拆解
java·jvm·人工智能·后端·python·langchain·ai agent 实战
I Am a robert girl11 小时前
当传感器学会“说谎“:拆解可靠性门控的稀疏惯性动捕融合
python·姿态估计·传感器融合·惯性动捕·imu传感器·可靠性门控·可穿戴计算
李航198311 小时前
AI定制柜建模,需要详细的建模规范和标准流程
人工智能·python·计算机视觉·ai·ai编程