在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和s <=上一个间隔的结束时间,则
- 返回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]]