無重疊區間 LeetCode435

2021-10-09 11:22:31 字數 1105 閱讀 7335

問題描述 :

給定乙個區間的集合,找到需要移除區間的最小數量,使剩餘區間互不重疊。

注意:可以認為區間的終點總是大於它的起點。

區間 [1,2] 和 [2,3] 的邊界相互「接觸」,但沒有相互重疊。

示例 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] ]

輸出: 0

解釋: 你不需要移除任何區間,因為它們已經是無重疊的了。

輸入說明 :

首先輸入區間集合的大小n(n<20000),然後輸入n行,每行2個整數,表示區間的起始和結束。

輸出說明 :

輸出乙個整數

輸入範例 :

41 2

2 33 4

1 3輸出範例 :

1

思路:我們可以先按照射擊氣球那道題的思路求出重疊區間的數量,那麼無重疊區間數 = 總區間數-重疊區間數

#include

#include

#include

using

namespace std;

bool

cmp(vector<

int>

&a,vector<

int>

&b)class

solution

}else

}return intervals.

size()

-res;}}

;int

main()

intervals.

push_back

(v);}

solution s;

int res = s.

eraseoverlapintervals

(intervals)

; cout

}

LeetCode 無重疊區間(貪心策略)

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

leetcode 435 無重疊區間

給定乙個區間的集合,找到需要移除區間的最小數量,使剩餘區間互不重疊。輸入 1,2 2,3 3,4 1,3 輸出 1 解釋 移除 1,3 後,剩下的區間沒有重疊。輸入 1,2 1,2 1,2 輸出 2 解釋 你需要移除兩個 1,2 來使剩下的區間沒有重疊。輸入 1,2 2,3 輸出 0 解釋 你不需要...

LeetCode 435 無重疊區間

這道題目是在給定的集合中找到需要去掉的區間最小數量,使得剩餘區間互相不重疊,題目如下 這道題目似乎無從下手,因為找重疊的區域確實是比較麻煩的。我們可以嘗試用貪心演算法來解答這個問題,我們假設有集合 int erva ls 1,2 3 5 2,3 3 6 7,8 6 7 intervals 1,2 3...