非独立思考
class Solution {public int eraseOverlapIntervals(int[][] intervals) {// 首先按照左边的值排序Arrays.sort(intervals, Comparator.comparingInt(arr -> arr[0]));// 保留最多区间,就好比参与更多活动,能够影响的主要是上一个活动的结束时间// 这里我们也需要关注右区间,右区间越小越好int ans = 0;// 表示已经已经添加到其中的endint end = intervals[0][1];for (int i = 1; i < intervals.length; i++) {if (intervals[i][0] < end) {// 发生重叠,首先需要删除的区间+1// 其次,因为已经是按照左边排序,我们选择右区间选择较小的那个// 因为反正都需要删掉一个,选择右区间较小的,右边相当于有更大的空间可以容纳更多的值// 也就“拥有保留更多区间的能力”++ans;end = Math.min(end, intervals[i][1]);} else {// 将end更新end = intervals[i][1];}}return ans;}}
