在 Python 中检查是否有任何区间完全重叠
假设,我们得到一组区间,其中包含值 (a,b),其中 a 表示事件的开始时间,b 表示事件的结束时间。我们的任务是检查这些区间中是否有任何区间完全重叠于其他任何区间。如果任何区间重叠,则返回结果 True,否则返回 False。
因此,如果输入类似于 [(4,6), (10,12), (7,9), (13,16)],则输出将为 False。如果输入类似于 [(4,6), (4,9), (7,11), (5,8)],则输出将为 True。
为了解决这个问题,我们将遵循以下步骤 -
- 对区间列表进行排序
- 对于 i 从 1 到区间大小,执行以下操作
- 如果 intervals[i, 1] <= intervals[i- 1, 1],则
- 返回 True
- 返回 False
- 如果 intervals[i, 1] <= intervals[i- 1, 1],则
让我们看看下面的实现以获得更好的理解 -
示例
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
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP