LeetCode435無重疊區間

2021-09-28 10:34:10 字數 712 閱讀 8850

題目:

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

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

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

思路:先計算最多能組成的

不重複區間個數,然後用區間總個數減去最多能組成的不重複區間的個數。在每次選擇中,選擇區間的結尾越小,留給後面區間的空間越大,因此將二維陣列按區間結尾排序,得到區間結尾最小的值,每次選擇結尾最小的區間。

public int eraseoverlapintervals(int intervals)

//1.以二維陣列結尾排序,找到排完序的最小值,也就是第乙個

>a[1]));

arrays.sort(intervals,new comparator()

});int end=intervals[0][1];

int cnt=1;

//2.找出不需要去重的區間

for(int i=1;i總結:對二維陣列進行結尾排序可用lambda表示式arrays.sort(intervals,comparator.comparingint(a->a[1]),也可用

比較器實現,對二維陣列進行排序,

arrays.sort(pairs, (a, b) -> (a[0] - b[0]));

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 解釋 你不需要...

leetcode435無重疊空間

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

LeetCode 435 無重疊區間

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