貪心演算法 leetcode 435 無重疊區間

2021-10-04 21:34:27 字數 785 閱讀 4894

#include

#include

#include

#include

#include

#include

using

namespace std;

/* 貪心演算法:

可以認為是動態規劃的乙個特例,相比於動態規劃,使用貪心演算法需要滿足更多的條件,但是效率更高

貪心演算法的條件:每一步都做乙個區域性最優解的選擇,最終的結果是全域性最優

本題思想:按照起點進行排序,選擇結尾最短的,後面才可能連線盡量多的區間(若兩個區間有相交

則應該選擇右端點最小的值) 把問題轉化為最多能保留多少個區間,使他們互不重複

貪心演算法:leetcode 435. 無重疊區間

*/interaseoverlapintervals

(vectorint>>

& intervals));

//下面的是乙個lambda表示式

int left = intervals[0]

[1];

//最左邊的區間的右端點開始

int count =0;

for(

int i =

1; i < len;

++i)

else

}return count;

}int

main()

,,};

cout<<

eraseoverlapintervals

(vec)

;}

LeetCode 435 無重疊區間 貪心

給定多個區間,計算讓這些區間互不重疊所需要移除區間的最少個數。起止相連不算重疊。具體實現方法為,先把區間按照結尾的大小進行增序排序,每次選擇結尾最小且和前乙個選 擇的區間不重疊的區間。我們這裡使用 c 的 lambda,結合 std sort 函式進行自定義排序。在樣例中,排序後的陣列為 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 解釋 你不需要...

leetcode435無重疊空間

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