[未完成][知识点]动态规划优化初步
2015-08-25 22:35
323 查看
1、前言
这将是本时期的最后一篇知识点,讲解动态规划的优化算法。
2、概念
动态规划众所周知,在很多情况下时间复杂度是很容易判断的,因为其主体就是for循环。局限于设计状态和写出状态转移方程显然是不够的,有时候数据过大可能需要我们对其进行一定的优化。下面就是几种比较典型的优化方式。
3、单调队列
单调队列,望文生义,就是指队列中的元素是单调的。如:{a1,a2,a3,a4……an}满足a1<=a2<=a3……<=an,a序列便是单调递增序列。同理递减队列也是存在的。
单调队列的出现可以简化问题,队首元素便是最大(小)值,这样,选取最大(小)值的复杂度便为O(1),由于队列的性质,每个元素入队一次,出队一次,维护队列的复杂度均摊下来便是O(1)。
4、斜率优化
5、总结
这将是本时期的最后一篇知识点,讲解动态规划的优化算法。
2、概念
动态规划众所周知,在很多情况下时间复杂度是很容易判断的,因为其主体就是for循环。局限于设计状态和写出状态转移方程显然是不够的,有时候数据过大可能需要我们对其进行一定的优化。下面就是几种比较典型的优化方式。
3、单调队列
单调队列,望文生义,就是指队列中的元素是单调的。如:{a1,a2,a3,a4……an}满足a1<=a2<=a3……<=an,a序列便是单调递增序列。同理递减队列也是存在的。
单调队列的出现可以简化问题,队首元素便是最大(小)值,这样,选取最大(小)值的复杂度便为O(1),由于队列的性质,每个元素入队一次,出队一次,维护队列的复杂度均摊下来便是O(1)。
4、斜率优化
5、总结
相关文章推荐
- 2015 Multi-University Training Contest 10 hdu 5406 CRB and Apple
- 公有云选择
- [268]Missing Number
- Python源码分析2 - 一个简单的Python程序的执行
- 机房收费系统之结账
- VS2008 MFC内部工作原理
- bzoj-3011 Running Away From the Barn
- 前端代码异常日志收集与监控
- 常见linux命令释义(第一天)
- leetcode 199: Binary Tree Right Side View
- JavaScript基础-Object类
- 在Ubuntu 14.04 64bit上使用网络诊断工具mtr
- eclipse查看jar包中class的中文注释乱码问题的解决
- 非阻塞connect
- @property 和synthesize 的使用窍门
- python @property
- 轻松python文本专题-字符串对齐
- 基于window.onerror事件 建立前端错误日志
- Target- Action设计模式
- 第 20 章 相机 II:拍摄并处理照片