在 Python 中查找相交间隔

pythonserver side programmingprogramming更新于 2025/12/26 15:40:17

假设我们有一个间隔列表,其中每个间隔都像 [start, end],这表示间隔的开始和结束时间(含),我们必须找到它们的交点,即位于所有给定间隔内的间隔。

因此,如果输入像 [[10, 110],[20, 60],[25, 75]],则输出将是 [25, 60]

为了解决这个问题,我们将遵循以下步骤 −

  • start, end := 从间隔列表中删除最后一个元素后的间隔
  • 当间隔不为空时,执行
    • start_temp, end_temp := 从间隔列表中删除最后一个元素后的间隔
    • start := 起始点的最大值,start_temp
    • 结束 := 结束点的最小值,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]

相关文章


有用资源