区间调度问题详解
这里是一个区间调度问题的总结学习,主要参考区间调度问题详解,思路方面原文已经非常清晰,这里就不在赘述,请直接参考原文。
最多区间调度
Greedy
1 | const int MAX_N=100000; |
DP
1 | void solve() |
最大区间调度
1 | public int getMaxWorkingTime(List<Interval> intervals) { |
带权的区间调度
1 | const int MAX_N=100000; |
最小区间覆盖
将剩余的区间和新的左端点比较并选择右端点最大的区间,修改左端点,这时左端点就会变为end4,I4添加到最小覆盖区间中。依次处理剩余的区间,我们就获得了最优解
1 | const int MAX_N=100000; |
最大区间重叠(最少工人调度)
这里实际的代码是leetcode的minimal meeting room问题,但本质上就是最大区间重叠问题。
1 | public class Solution { |