此题与会议室安排有一些相似性。首先对数组进行快排,匿名内部类。
排序规则是以区间右端数值较小的顺序进行排序。其次,此题对于相邻区间连接区取等号允许,因此判断条件取大于等于。
class Solution {
public int eraseOverlapIntervals(int[][] intervals) {
int len=intervals.length;
if (len==0) return 0;
Arrays.sort(intervals, new Comparator<int[]>() {
@Override
public int compare(int[] o1, int[] o2) {
return o1[1]-o2[1];
}
});
int right=intervals[0][1];
int ans=len-1;
for(int j=1;j<len;j++){
if (intervals[j][0]>=right){
right=intervals[j][1];
ans--;
}
}
return ans;
}
}