Algorithm | Interval Scheduling and Weighted Interval Scheduling

Interval Scheduling 问题描述:已知n个工作的开始时间和结束时间,求一个工作的子集,使得子集内的工作时间不重叠,且子集包含的工作个数最多。

Idea: 贪心算法,在时间不重叠的前提下,每一步找到最早结束的工作。(证明)

算法如下:


Weighted Interval Scheduling 问题描述:已知n个工作的开始时间,结束时间和权重 (weight),求一个工作的子集,使得子集内的工作时间不重叠,且子集的权重和最大。

Idea: 动态规划 (Dynamic Programming)

讨论至此,这个问题的算法也相当显然了,在此不赘述。

  • 这篇英文参考文章详细地讨论了这两个问题的算法,包括算法思想和复杂度,并给出了python代码以供参考:Weighted Interval Scheduling

你可能感兴趣的:(Algorithm | Interval Scheduling and Weighted Interval Scheduling)