news 2026/6/10 1:04:31

【小白笔记】杨辉三角

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【小白笔记】杨辉三角


杨辉三角(Pascal’s Triangle)是一个非常经典的数学和算法问题。它的核心规律非常直观:每一行的首尾都是 1,其余位置的数值等于它正上方和左上方两个数值之和。


1. 算法思路


2. 代码实现 (Python)

classSolution:defgenerate(self,numRows:int)->List[List[int]]:triangle=[]forrow_numinrange(numRows):# 每一行的长度等于 ![当](https://i-blog.csdnimg.cn/direct/2578b7f30ccb4fc28f466c8857b841e2.png)前行索引+1# 初始化为一个全为 1 的列表row=[1]*(row_num+1)# 只有从第 3 行(索引为 2)开始,才有中间元素需要计算forjinrange(1,row_num):# 中间元素 = 上一行的左上方 + 正上方row[j]=triangle[row_num-1][j-1]+triangle[row_num-1][j]triangle.append(row)returntriangle

将“杨辉三角”放入**划分型动态规划(Partition DP)**的框架下分析是一个非常深刻的视角。虽然杨辉三角本身较为简单,但它是理解“状态转移依赖于上一层划分结果”的绝佳案例。




🚀 划分型 DP 通用模板代码 (杨辉三角版)

defpartition_dp_template(numRows):# 1. 初始化 DP 表 (处理边界)# 这里的 dp[i] 代表对第 i 层的划分结果dp=[[1]*(i+1)foriinrange(numRows)]# 2. 外部循环:枚举规模 (自底向上,从第 3 层开始)foriinrange(2,numRows):# 3. 内部循环:枚举当前规模下的所有划分点/位置forjinrange(1,i):# 4. 状态转移:利用重叠子问题的结果# 当前决策 = 依赖于前一阶段已计算出的子状态dp[i][j]=dp[i-1][j-1]+dp[i-1][j]# 5. 返回最终状态returndp

💡 划分型 DP 的攻克口诀

  1. 分哪儿:枚举最后一个划分点 。
  2. 看前面:当前最优 = + [0, k-1] 的子问题的解。
  3. 记下来:用数组存储已计算的划分结果,避免重复。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/8 12:15:13

Excalidraw与Slack集成:消息通知同步提醒

Excalidraw与Slack集成:消息通知同步提醒 在分布式团队成为常态的今天,一个常见的协作困境是:设计师刚刚完成架构图修改,却没人知道——直到某位工程师在评审会上问出那句“这图是不是已经过时了?”信息断层往往不是因…

作者头像 李华
网站建设 2026/6/8 3:04:27

Excalidraw与其他白板工具集成路径探索

Excalidraw 与协作生态的融合:从手绘白板到智能可视化引擎 在一场远程产品评审会上,团队成员刚提出“我们需要一个用户注册流程图”,几秒钟后,画布上已自动呈现出四个节点的手绘风格流程图——手机号输入、验证码发送、密码设置、…

作者头像 李华
网站建设 2026/6/9 22:37:28

Excalidraw支持SVG导出吗?答案在这里

Excalidraw 支持 SVG 导出吗?技术解析与实战应用 在现代技术协作中,一张图的价值往往胜过千言万语。无论是架构讨论、产品原型设计,还是教学演示,可视化表达已成为团队沟通的“通用语言”。而当我们在白板上随手画出一个服务模块、…

作者头像 李华
网站建设 2026/6/9 21:13:52

Redis持久化详解(一):RDB快照机制深度解析

一、引言 在服务器重启或宕机时,内存中的数据会瞬间消失。Redis作为一款高性能的内存数据库,Redis通过持久化机制保证数据安全不丢失的。 Redis提供了两种主流的持久化方案: RDB:定期保存Redis内存数据AOF:记录每次…

作者头像 李华
网站建设 2026/6/9 18:45:31

Excalidraw规划活动流程:会议策划更清晰

Excalidraw 规划活动流程:让会议协作更直观高效 在一次跨部门的产品评审会前,团队成员围坐在屏幕前,却迟迟无法就议程达成一致。有人主张先讲背景,有人坚持应优先展示方案,而时间一分一秒地流逝——这种场景并不陌生。…

作者头像 李华
网站建设 2026/6/9 15:17:12

【C++】教你学会键值对使用技巧,make_pair太香了!

我们这章所学的map / set 系列和后续会讲解的 unordered_map / unordered 系列都属于是关联式容器。 那么什么是关联式容器&#xff1f; 关联式容器用于存储 键值对 (<key, value>)&#xff0c;与序列式容器不同&#xff0c;关联式容器的元素通过 键 来查找、插入和删除。…

作者头像 李华