网站首页 全球最实用的IT互联网站!

人工智能P2P分享Wind搜索发布信息网站地图标签大全

当前位置:诺佳网 > 软件工程 > 其他技术区 > 算法与数据结构 >

动态规划

时间:2025-07-14 19:52

人气:

作者:admin

标签:

导读:动态规划 背景: 从递归到记忆化搜索再到动态规划: 递归思路: 方法论 方法一:循序渐进 通过引入动态规划的逻辑,来解决动态规划的问题:首先从递归出发,写出递归表达式,根...

背景:

从递归到记忆化搜索再到动态规划:

打家劫舍

递归思路:

动态规划1

动态规划2

方法论

  1. 方法一:循序渐进

通过引入动态规划的逻辑,来解决动态规划的问题:首先从递归出发,写出递归表达式,根据递归表达式,得到记忆化搜索,再有记忆化搜索翻译为递归(去掉递归中的递的过程)(结合198.打家劫舍来理解):

  • dfs(i,j) => dp数组
  • 递归 => 循环
  • 根据递归边界初始化数组
  1. 方法二:五部曲
  • dp数组以及下标含义
  • 递推公式
  • 遍历顺序:前后顺序,内外顺序
  • 数组初始化,结合前三者
  • 打印dp数组:验证,找错

动态规划模型

  1. 0-1背包

01背包

  1. 完全背包

完全背包

小结:0-1背包与完全背包模型是对递归中枚举该元素选或者不选两种选择对最终目标造成的影响的总结,两者的区别在于01背包中的物品只能选一次,而完全背包的物品的选择则没有次数限制

总结

记忆化搜索即在递归过程中,缓存递归返回的结果,每次进入递归之前判断该结果是否已经计算过了。而在递归过程中,通常是在归的过程计算答案,放入缓存。由此,省去递的过程,直接从头循环开始推到,得到归的最终结果,这个就是动态规划的思想。通常递归的与动态规划的时间复杂度是相同的,因为他们都是搜索,而动态规划是自底向上的,递归通常是自顶向下的。在空间复杂度上,动态规划通常可以做到优于递归,因为递归需要隐式的记录返回位置,而动态规划的状态转移方程往往只涉及有限的数组。

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信