[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. Non-overlapping Intervals
leetcode 435. 无重叠区间贪心策略:优先保留结尾小且不相交的区间,即局部最优连续区间