[LeetCode] 435. Non-overlapping Intervals

Posted aaronliu1991

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[LeetCode] 435. Non-overlapping Intervals相关的知识,希望对你有一定的参考价值。

不重叠的区间。这题又是用到扫描线的思想。题意是给了一组intervals,求至少需要删除几个interval就能使得最后的结果集中没有重叠。

既然是找是否有重叠,那么可以根据每个interval的end对input进行排序。排序之后遍历intervals,记录不重叠的interval一共有几个(记为count),然后用intervals的总长度L - count得到最后要的结果。

时间O(nlogn)

空间O(1)

 1 /**
 2  * @param {number[][]} intervals
 3  * @return {number}
 4  */
 5 var eraseOverlapIntervals = function(intervals) {
 6     // corner case
 7     if (intervals.length === 0) {
 8         return 0;
 9     }
10 
11     // normal case
12     intervals = intervals.sort((a, b) => a[1] - b[1]);
13     let end = intervals[0][1];
14     let count = 1;
15     for (let i = 1; i < intervals.length; i++) {
16         if (intervals[i][0] >= end) {
17             end = intervals[i][1];
18             count++;
19         }
20     }
21     return intervals.length - count;
22 };

 

以上是关于[LeetCode] 435. Non-overlapping Intervals的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 435. 无重叠区间

[LeetCode] 435. Non-overlapping Intervals

leetcode 435. 无重叠区间贪心策略:优先保留结尾小且不相交的区间,即局部最优连续区间

leetcode 435无重叠区间贪心:局部最优连续区间

leetcode 435.无重叠区间贪心策略:优先保留结尾小且不相交的区间,即局部最优连续区间

leetcode 435.无重叠区间贪心策略:优先保留结尾小且不相交的区间,即局部最优连续区间