码迷,mamicode.com
首页 > 移动开发 > 详细

[LeetCode] 435. Non-overlapping Intervals

时间:2019-11-01 12:50:16      阅读:106      评论:0      收藏:0      [点我收藏+]

标签:UNC   als   没有   bsp   区间   function   ping   count   code   

不重叠的区间。这题又是用到扫描线的思想。题意是给了一组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

标签:UNC   als   没有   bsp   区间   function   ping   count   code   

原文地址:https://www.cnblogs.com/aaronliu1991/p/11776268.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!