Algorithm | Interval Scheduling and Weighted Interval Scheduling

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

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

算法如下:


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

Idea: 动态规划 (Dynamic Programming)

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

  • 这篇英文参考文章详细地讨论了这两个问题的算法,包括算法思想和复杂度,并给出了python代码以供参考:Weighted Interval Scheduling
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。