去除重叠区间

题目:去除区间中重叠的部分

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))
复制代码

 

posted @   不能说的秘密  阅读(474)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示