当前位置: 首页 > news >正文

【小白笔记】杨辉三角


杨辉三角(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. 记下来:用数组存储已计算的划分结果,避免重复。
http://www.cnnetsun.cn/news/175668.html

相关文章:

  • Excalidraw实现KANO模型:需求优先级排序
  • 基于Java+大数据+SSMB站数据分析可视化系统(源码+LW+调试文档+讲解等)/B站数据可视化/B站数据分析/B站分析系统/数据可视化系统/数据分析系统/B站数据平台/B站可视化工具
  • 基于Python+大数据+SSMCBA球员数据可视化分析系统(源码+LW+调试文档+讲解等)/CBA球员数据展示系统/CBA球员数据统计系统/CBA球员数据分析平台/篮球数据可视化分析系统
  • Excalidraw导出PDF注意事项:格式保持完整
  • 【C++】优选算法必修篇之双指针实战:移动零 复写零
  • 【C++】继承深度解析:继承方式和菱形虚拟继承的详解
  • Excalidraw背景设置:更换画布颜色或图片
  • Excalidraw深度测评:为什么它成技术团队首选白板工具?
  • 笨人小白的温故知新——排序(3)
  • 基于python的RSA加密算法软件的研究设计(源码+文档)
  • Excalidraw界面原型设计:产品经理快速出稿方案
  • Excalidraw价值流图:精益生产流程优化
  • 嵌入式多线程从“能跑“到“稳定“的关键一步!
  • 【空间辨识】一致模态指标与模态参与因子的随机子空间辨识研究(Matlab代码实现)
  • 基于Java+SSM+SSM线上管理系统(源码+LW+调试文档+讲解等)/线上管理平台/在线管理系统/线上管理软件/网络管理系统/线上办公系统
  • 分层模糊系统:梯度下降与递推最小二乘法联合辨识研究(Matlab代码实现)
  • 人机差异的核心
  • Excalidraw暗黑模式设置:夜间使用的护眼方案
  • 精品UI知识付费系统源码 响应式视频教程知识付费软件下载网站模板
  • CentOS 7 x86系统安装EMQX 【kaki备忘录】
  • 文献综述:近年“知识工程(Knowledge Engineering)与知识库/知识图谱建设(KB/KG)”研究脉络与展望
  • Excalidraw监控指标采集:Prometheus+Grafana集成
  • 【自动驾驶基础】LDM(Latent Diffusion Model) 要点总结
  • 【FreeRTOS实战】互斥锁专题:从理论到STM32应用题
  • STM32学习——AD单通道AD多通道
  • 基于Spring Boot的农产品销售系统的设计与实现毕设源码
  • 基于Spring Boot的流浪动物救助平台的设计与实现毕业设计
  • 备份恢复-Cordovaopenharmony本地安全方案
  • 创建目标模块 Cordova 与 OpenHarmony 混合开发实战
  • 解决MQ消息丢失问题的5种方案