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