去除重疊區間

2022-06-19 10:24:11 字數 1244 閱讀 6183

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]]:

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

無重疊區間

給定一些區間,找到需要移除的最小區間數,以使其餘的區間不重疊。樣例1 輸入 1,2 2,3 3,4 1,3 輸出 1 解釋 1,3 被移除後,剩下的區間將不再重疊。樣例2 輸入 1,2 1,2 1,2 輸出 2 解釋 需要將兩個 1,2 移除使得剩下的區間不重合。樣例3 輸入 1,2 2,3 輸出 ...

無重疊區間

最近做題發現無重疊區間出現的比較多,在此做個記錄,但願你,思維活躍,邏輯縝密,多的不扯,堅持刷題 給定乙個區間的集合,找到需要移除區間的最小數量,使剩餘區間互不重疊。分析題意,說的是無重疊區間,那就是利用區間數字的大小做判斷唄,所以對整體陣列排序不會對整體結果造成影響。但是對做題人來說那就簡單多了,...

無重疊區間

問題描述 給定乙個區間的集合,找到需要移除區間的最小數量,使剩餘區間互不重疊。注意 可以認為區間的終點總是大於它的起點。區間 1,2 和 2,3 的邊界相互 接觸 但沒有相互重疊。示例 1 輸入 1,2 2,3 3,4 1,3 輸出 1 解釋 移除 1,3 後,剩下的區間沒有重疊。示例 2 輸入 1...