去除重叠区间
题目:去除区间中重叠的部分
intput1 : [[1, 2], [1, 3], [2, 3], [3, 4]]
output1: [[1, 2], [2, 3], [3, 4]]
input2: [[1, 2], [1, 2], [1, 2]]
output2: [[1, 2]]
input3: [[1, 2], [2, 3]]
output3: [[1, 2], [2, 3]]
思路:
将区间进行排序,从小到大,获取第一个区间的末尾值,往后开始遍历,区间的第一个值,
如果小于最小区间的末尾值,说明重叠了,就去掉。
代码实现:
#!/usr/bin/env python # -*- encoding: utf-8 -*- ''' @File :python.py @Description : @CreatTime :2020/09/29 15:02:53 @Author :Yunhgu @Version :1.0 ''' def eraseOverlapIntervals(args_doublelist): sorted_doublelist = sorted(args_doublelist) print(sorted_doublelist) curEnd = sorted_doublelist[0] for list_int in sorted_doublelist[1:]: if list_int[0]<curEnd[-1]: sorted_doublelist.remove(list_int) return sorted_doublelist if __name__ == "__main__": doubleList_int = [[1, 2],[2, 3], [3, 4],[1, 3]] removeOvrelap = eraseOverlapIntervals(doubleList_int) print(removeOvrelap) args = [ [1,2], [1,2], [1,2] ] print(eraseOverlapIntervals(args)) args2 = [ [1,2], [2,3] ] print(eraseOverlapIntervals(args2))
不论你在什么时候开始,重要的是开始之后就不要停止。
不论你在什么时候结束,重要的是结束之后就不要悔恨。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律