LeetCode 435 無重疊區間 貪心

2021-10-05 19:21:02 字數 550 閱讀 4845

給定多個區間,計算讓這些區間互不重疊所需要移除區間的最少個數。起止相連不算重疊。

具體實現方法為,先把區間按照結尾的大小進行增序排序,每次選擇結尾最小且和前乙個選 擇的區間不重疊的區間。我們這裡使用 c++ 的 lambda,結合 std::sort() 函式進行自定義排序。

在樣例中,排序後的陣列為 [[1,2], [1,3], [2,4]]。按照我們的貪心策略,首先初始化為區間 [1,2];由於 [1,3] 與 [1,2] 相交,我們跳過該區間;由於 [2,4] 與 [1,2] 不相交,我們將其保留。因此最終保留的區間為[[1,2],[2,4]]。

注意需要根據實際情況判斷按區間開頭排序還是按區間結尾排序。

class

solution);

int cnt=

0,pre=intervals[0]

[1];

for(int i=

1;i)return cnt;}}

;

學如逆水行舟,不進則退

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