Leetcode 1288. Remove Covered Intervals
题目链接: Remove Covered Intervals
难度:Medium
题目大意:
给出若干个区间的范围,如果一个区间包含于其他区间,则将该区间删除,判断最后还剩多少个区间。
思路:
将区间按照左值从小到大排列,然后遍历这些区间,进行判断。用到双指针。
代码
class Solution {
public int removeCoveredIntervals(int[][] intervals) {
int res=0,left=-1,right=-1;
Arrays.sort(intervals,(a,b)->a[0]-b[0]);
//将区间按左值从小到大进行排列
for(int[] a:intervals){
if(a[0]==left){
if(a[1]>right){
right=a[1];
}
}
else{
if(a[1]>right){
res++;
right=a[1];
left=a[0];
}
}
}
return res;
}
}