用 Python 编写程序合并间隔并按升序排序
pythonserver side programmingprogramming
假设我们有一个间隔列表,我们必须按排序顺序找到它们的并集。
因此,如果输入为 inv = [[2, 5],[4, 10],[20, 25]],则输出为 [[2, 10], [20, 25]]
为了解决这个问题,我们将遵循以下步骤 −
- 对间隔列表进行排序
- ans := 一个新列表
- 对于间隔中的每个开始和结束 (s, e),执行
- 如果 ans 和 s <= ans 最后一个间隔的结束时间,则
- ans 最后一个间隔的结束时间 := 最大值e 和 ans 最后一个区间的结束时间
- 否则,
- 将区间 [s, 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]]
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

