动态规划问题总结
来源:互联网 发布:windows专业版和旗舰版 编辑:程序博客网 时间:2024/05/14 17:05
本文提纲参考自视频:https://www.bilibili.com/video/av9379437/#page=29
感谢左大神的讲解
文章是本人的学习笔记,侵删!
在介绍动态规划是什么之前,先来看一道题目
求解该题,有四种方法
在面试题中出现类似的题目,优化轨迹高度一致。
方法一:暴力搜索方法
暴力搜索的时间复杂度很高,因为存在太多的重复劳动
方法二:记忆搜索法
其实记忆化搜索的方法,本质上与动态规划的思想非常相似。时间复杂度和动态规划一样0(m*n^2)
方法三:动态规划
记忆搜索方法和动态规划方法的联系:
1.记忆化搜索方法就是某种形态的动态规划方法;
2.记忆化搜索方法不关心到达某一个递归过程的路径,只是单纯地对计算过的递归过程进行记录,避免重复计算;
3.动态规划的方法则是规定好每一个递归过程的计算顺序,依次进行计算,后面的计算过程严格依赖前面的计算过程。
4.两者都是空间换时间的方法,也都有枚举的过程没区别就在于动态规划规定了计算顺序,而记忆搜索不用规定。
什么是动态规划方法?
1.其本质是利用申请的空间来记录每一个暴力搜索的计算结果,下次要用结果的时候直接使用,而不再进行重复的递归过程。
2.动态规划规定每一种递归状态的计算顺序,依次进行计算。
经过化简后的动规划方法的时间复杂度为O(m*n).
总结:虽然动态规划方法和记忆搜索方法本质上是相同的,但是由于动态规划规定了计算过程,所以使状态继续优化得以实现。
面试中遇到的暴力递归题目可以优化为动态规划方法的过程:
动态规划方法的关键点:
阅读全文
0 0
- 动态规划问题总结
- 动态规划问题总结
- 动态规划问题总结
- 动态规划问题总结
- 动态规划-背包问题总结
- 动态规划问题个人总结
- 常见动态规划问题总结
- 动态规划经典问题总结
- 动态规划的问题总结
- 经典动态规划问题总结
- LeetCode总结,动态规划问题小结
- 动态规划问题 (dynamic programming)的总结
- LintCode 关于动态规划问题的总结
- 动态规划总结——经典问题总结
- 动态规划总结
- 动态规划总结
- 【转】动态规划总结
- 动态规划总结
- 数据报实现简单的客户端发送数据,服务端接收数据
- 简单速记-3句话浓缩Handler四件套
- 30岁转行做初级程序员是一种怎样的体验?(Being a Junior Developer at 30)
- 竞赛题目讲解-【Standard IO】数的划分
- unity3d各种OpenFileDialog操作
- 动态规划问题总结
- SQL聚合函数--JDBC(Java DataBase Connection)
- Glide最新版V4使用指南
- 对数字图像的理解(一)
- Standard IO-----数字金字塔(CCF 1145)
- Python_uuid
- Hibernate--hibernate.cfg.xml说明
- Jetty 的工作原理以及与 Tomcat 的比较
- C++ revisit