程序合并间隔并在Python中按升序对其进行排序

假设我们有一个列表间隔,我们必须按排序顺序找到它们的并集。

因此,如果输入像inv = [[2,5],[4,10],[20,25]],那么输出将是[[2,10],[20,25]]

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

  • 排序列表间隔

  • ans:=一个新列表

  • 对于间隔中的每个开始和结束(s,e),请执行

    • 将间隔[s,e]插入ans

    • ans的最后一个间隔的结束时间:= e的最大值和ans的最后一个间隔的结束时间

    • 如果ans和s <= ans的最后间隔的结束时间,则

    • 除此以外,

    • 返回ans

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

    示例

    class Solution:
       def solve(self, intervals):
          intervals.sort()
          ans = []
          for s, e in intervals:
             if ans and s <= ans[-1][1]:
                ans[-1][1] = max(ans[-1][1], e)
             else:
                ans.append([s, e])
          return ans
    ob = Solution()inv = [[2, 5],[4, 10],[20, 25]]
    print(ob.solve(inv))

    输入值

    [[2, 5],[4, 10],[20, 25]]

    输出结果

    [[2, 10], [20, 25]]