在Python中查找相交间隔

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

因此,如果输入类似于[[10,110],[20,60],[25,75]],则输出将为[25,60]

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

  • start,end:=从间隔列表中删除最后一个元素后的间隔

  • 当间隔不为空时,执行

    • start_temp,end_temp:=从间隔列表中删除最后一个元素后的间隔

    • start:=最大值,start_temp

    • 结束:=结束的最小值,end_temp

  • 返回间隔[开始,结束]

让我们看下面的实现以更好地理解-

示例

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]

以上是 在Python中查找相交间隔 的全部内容, 来源链接: utcz.com/z/316696.html

回到顶部