假设您有开始和结束时间.
此外,您还会获得一系列作业,按其开始和结束时间进行描述.这些作业可能重叠(即,可以同时运行多个作业).我需要找到一种方法来确定空闲时间和未运行任何工作的时间.
当然,如果任何时候只能运行一个作业,我可以减去每个作业的运行时间,但重叠部分让我难过.
将所有开始和结束时间放在一个数组中,将它们标记为开始或结束时间.按时间排序数组.现在遍历排序列表,计算正在运行的作业数量:
每当从0增加到1时,将(current_time - previous_time)添加到总空闲时间.如有必要,请记住特殊情况的开始和结束.