给你一个区间列表,请你删除列表中被其他区间所覆盖的区间。
只有当 c <= a 且 b <= d 时,我们才认为区间 [a,b) 被区间 [c,d) 覆盖。
在完成所有删除操作后,请你返回列表中剩余区间的数目。力扣原文
示例:
输入: intervals = [[1,4],[3,6],[2,8]]
输出: 2
解释: 区间 [3,6] 被区间 [2,8] 覆盖,所以它被删除了。
解题
var removeCoveredIntervals = function (intervals) {
if (intervals.length <= 0) return 0;
intervals.sort((a, b) => {
if (a[0] === b[0]) {
return b[1] - a[1];
}
return a[0] - b[0];
});
let count=0,len=intervals.length,i=0;
while(i<len){
let [left,right]=intervals[i],j=i+1
while(j<len&&left<=intervals[j][0]&&right>=intervals[j][1]){
count++;
j++
}
i=j
}
return len-count
};