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

第三章博文

1.关于数学三角形这道题目,从图形来看,它拥有自上而下的的逻辑结构,根据观察,可以列出以下的递归方程式:
假设我们使用一个二维数组c的下半三角来存放整个数学三角形,用i来控制行(从1开始),用j来控制列,那么就有:
1.c[i][j]=c[i][j]+c[i-1][j],j0 这表示当要计算三角形左边的边时,数组只要往下求和即可
2.c[i][j]=c[i][j]+c[i-1][j-1],j
i-1这表示当要计算三角形右边的边时,数组进行斜向下的求和
3.c[i][j]=c[i][j]+max(c[i-1][j-1],c[i-1][j]),对于三角形而言,不在两个边界处的下一步路线选择只能沿左斜线向下或右斜线向下,在数组中呈现为当前路径的和等于当前格子的值加上左上或正上方的格子的求和值之间的较大者,以此来达到数字总和最大的目的。
在这个方程式中,公式1和公式2是动态规划的边界条件。在代码的实现中,实际上是一种填表法的方式。表的维度是2维的,表的范围则是n*n/2,结合上面的公式,可以得知填表的顺序是从上到下,从左往右。在最后一行中,最优值自然是最后一行的最大值。
由于我们的方法是填写一个二维表,则用二重循环的方式,时间复杂度是O(n2),空间复杂度也为O(n2)。事实上,假如只保留上一行的计算结果,可以将空间复杂度优化到O(n)。
2. 动态规划可以将一个复杂的问题分解成数个拥有最优子结构的子问题,降低了时间复杂度。同时相比于贪心算法来说,它能够找到全局的最优解,同时避免了重复的运算。

http://www.jsqmd.com/news/39670/

相关文章:

  • Spring BeanPostProcessor接口
  • 25.11.13随笔联考总结
  • 完整教程:Verilog和FPGA的自学笔记6——计数器(D触发器同步+异步方案)
  • LucaOne架构
  • 实用指南:Windows安装MongoDB保姆级教程(图文详解)
  • linux USB --- 监听 USB 角色
  • 温州工友自动包装设备有限公司:专注螺丝五金智能包装,助力企业降本增效
  • 25.11.09
  • NOI2025 游记
  • NOIP 考前做题计划
  • 网络攻防实战 lab06 靶机 VulnHub hard-socnet2
  • [豪の学习笔记] Spring框架学习碎碎念#5
  • Docker部署Code-Server,实现远程写代码
  • 2025 年 11 月电力金具厂家最新推荐,精准检测与稳定性能深度解析!
  • 2025 年 11 月铁附件厂家最新推荐,聚焦资质、案例、售后的五家企业深度解读!
  • LucaOne模型的词汇表系统
  • v4l2用户侧使用流程
  • 2025 年终端数据安全软件公司推荐数篷科技(深圳)有限公司,数据安全领域的坚实力量
  • Day37(7)-F:\硕士阶段\Java\课程代码\后端\web-ai-code\web-ai-project01\springboot-web-01
  • 网络协议工程 - eNSP及相关软件安装 - [eNSP, VirtualBox, WinPcap, Wireshark, Win7] - 教程
  • 20232314 2025-2026-1 《网络与系统攻防技术》实验五实验报告
  • 20232314 2025-2026-1 《网络与系统攻防技术》实验五实验报告
  • 深度学习实验一之图像特征提取和深度学习训练数据标注 - 实践
  • 题解:ABC232G Modulo Shortest Path
  • 如何在 Mac 上安装 MySQL 8.0.20.dmg(从下载到使用全流程,附安装包)
  • 题解:P3791 普通数学题
  • 芒格变富的逻辑
  • 基于Ai元人文构想的关系图
  • Numerical results of ar-HTMDFP in AMS 2025
  • 题解:P10360 [PA 2024] Desant 3