在 Python 中查找相交区间
假设我们有一个区间列表,其中每个区间都像 [开始,结束] 这样表示区间的开始和结束时间(包含),我们需要找到它们的交集,即位于所有给定区间内的区间。
因此,如果输入类似于 [[10, 110],[20, 60],[25, 75]],则输出将为 [25, 60]
为了解决这个问题,我们将遵循以下步骤:
- start,end := 从区间列表中删除最后一个元素后的区间
- 当 intervals 不为空时,执行以下操作
- start_temp,end_temp := 从区间列表中删除最后一个元素后的区间
- start := start 和 start_temp 的最大值
- end := end 和 end_temp 的最小值
- 返回一个区间 [start, end]
让我们看看下面的实现以更好地理解:
示例
class Solution: def solve(self, intervals): start, end = intervals.pop() while intervals: start_temp, end_temp = intervals.pop() start = max(start, start_temp) end = min(end, end_temp) return [start, end] ob = Solution() intervals = [[10, 110],[20, 60],[25, 75]] print(ob.solve(intervals))
输入
[[10, 110],[20, 60],[25, 75]]
输出
[25, 60]
广告