ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

去除重叠区间

2020-10-21 16:00:37  阅读:211  来源: 互联网

标签:args 重叠 python 去除 sorted 区间 doublelist


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

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))

 

标签:args,重叠,python,去除,sorted,区间,doublelist
来源: https://www.cnblogs.com/yunhgu/p/13852846.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有