贪心
import java.util.Arrays;
import java.util.Comparator;
class Solution {
public int eraseOverlapIntervals(int[][] intervals) {
/**
* 和《452. 用最少数量的箭引爆气球》一样
* 对数组排序,按照从小到大的区间
*/
Arrays.sort(intervals, new Comparator<int[]>() {
@Override
public int compare(int[] o1, int[] o2) {
return o1[0] - o2[0];
}
});
int count = 0;
/**
* 如果后一个区间和前一个区间重叠,count加1,更新这个区间的右边界,取最小值
*/
for (int i = 1; i < intervals.length; i++) {
if (intervals[i][0] < intervals[i - 1][1]){
intervals[i][1] = Math.min(intervals[i][1], intervals[i - 1][1]);
count++;
}
}
return count;
}
}
/**
* 时间复杂度 O(nlogn)
* 空间复杂度 O(1)
*/
https://leetcode-cn.com/problems/non-overlapping-intervals/