在Python中合并区间并按升序排序的程序

在Python中合并区间并按升序排序的程序

假设我们有一个名为“intervals”的列表,我们必须找到它们的联合并按排序顺序排列。

因此,如果输入是inv = [[2,5],[4,10],[20,25]],则输出将为[[2,10],[20,25]]。

要解决此问题,我们将执行以下步骤:

  • 排序列表间隔
  • ans:一个新列表
  • 对于间隔中的每个起始时间和结束时间(s,e),执行以下操作
    • 如果ans和s <=上一个间隔的结束时间,则
      • ans的最后一个间隔的结束时间:e和ans的最后一个间隔的结束时间中的最大值
    • 否则,
      • 将间隔[s,e]插入ans中
  • 返回ans

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

更多Python相关文章,请阅读:Python 教程

示例

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]]

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程