假设给定了一组由值(a,b)组成的间隔,其中a表示事件的开始时间,b表示事件的结束时间。我们的任务是检查这些间隔中的任何一个是否与该集合中的任何其他间隔完全重叠。如果有任何间隔重叠,则返回结果为True,否则返回False。
因此,如果输入类似于[(4,6),(10,12),(7,9),(13,16)],则输出为False。如果输入类似于[(4,6),(4,9),(7,11),(5,8)],则输出为True。
为了解决这个问题,我们将遵循以下步骤-
排序列表间隔
对于范围在1到区间大小的i
返回True
如果interval [i,1] <= interval [i-1,1],则
返回False
让我们看下面的实现以更好地理解-
def solve(intervals):intervals.sort()for i in range(1, len(intervals)): if intervals[i][1] <= intervals[i- 1][1]: return True return False intervals = [(4,6),(10,12),(7,9),(13,16)] intervals2 = [(4,6), (4,9), (7,11), (5,8)] print(solve(intervals)) print(solve(intervals2))
[(4,6),(10,12),(7,9),(13,16)] [(4,6), (4,9), (7,11), (5,8)]输出结果
False True