每一个贪心算法背后几乎总有一个动态规划算法
从区间调度问题中理解动态规划 与 贪心
摘抄自卜老师的《算法讲义》:
使用动态规划求解
- 首先该设所有的课程已经按照它们的结束时间排序
- 对于这个问题,一下子可能我们无从下手,考虑是否可以被转化成小一点的子问题
- 我们把这个求解过程想象成一系列的决策,在每个步骤,我们都要选择一门课。假如我们已经拿到了最优解,我们就问最优解中最后一个决策到底是什么?也就是后一门课你是选了呢还是没选?
假如说选了这么课A9,那么A8 不能选了,因为跟A9 时间有冲突,就把问题规约成了一个七门课的问题(蓝框中)
如果A9没有选,则考虑8门课
使用贪心求解
贪心无法解决上面的带权重的问题(即上面每一个Wi不同的问题)
动态规划和贪心的异同
总结
贪心经常指望经验和灵感,但是很多时候灵感是靠不住的