1、前言
这将是本时期的最后一篇知识点,讲解动态规划的优化算法。
2、概念
动态规划众所周知,在很多情况下时间复杂度是很容易判断的,因为其主体就是for循环。局限于设计状态和写出状态转移方程显然是不够的,有时候数据过大可能需要我们对其进行一定的优化。下面就是几种比较典型的优化方式。
3、单调队列
单调队列,望文生义,就是指队列中的元素是单调的。如:{a1,a2,a3,a4……an}满足a1<=a2<=a3……<=an,a序列便是单调递增序列。同理递减队列也是存在的。
单调队列的出现可以简化问题,队首元素便是最大(小)值,这样,选取最大(小)值的复杂度便为O(1),由于队列的性质,每个元素入队一次,出队一次,维护队列的复杂度均摊下来便是O(1)。
4、斜率优化
5、总结