zoukankan      html  css  js  c++  java
  • 去除重叠区间

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

    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))
    不论你在什么时候开始,重要的是开始之后就不要停止。 不论你在什么时候结束,重要的是结束之后就不要悔恨。
  • 相关阅读:
    log4j2RCE复现
    Kernel panic: VFS: Unable to mount root fs on 08:08 解决方法
    关于QEMU/KVM中无法开启eth0网卡解决方法
    20212022年寒假学习进度04
    20212022年寒假学习进度05
    每日学习
    课程总结和加分项
    每日学习
    20212022年寒假学习进度03
    20212022年寒假学习进度01
  • 原文地址:https://www.cnblogs.com/yunhgu/p/13852846.html
Copyright © 2011-2022 走看看