class Solution {
public int intersectionSizeTwo(int[][] intervals) {
Arrays.sort(intervals, (o1, o2) -> o1[0] == o2[0] ? o2[1] - o1[1] : o1[0] - o2[0] );
// System.out.println("排序后intervals:" + Arrays.deepToString(intervals));
int n = intervals.length;
int m = intervals[0].length;
int cur = intervals[n - 1][0];
int next = intervals[n - 1][0] + 1;
int ans = 2;
List<Integer> list = new ArrayList<>();
list.add(cur);
list.add(next);
for (int i = n - 2; i >= 0; i--){
// System.out.println("待比较区间:" + Arrays.toString(intervals[i]) + "\t当前集合S:" + list);
if (intervals[i][1] >= next){
continue;
}
if (intervals[i][1] < cur){
cur = intervals[i][0];
next = intervals[i][0] + 1;
ans = ans + 2;
list.add(0, next);
list.add(0, cur);
} else {
next = cur;
cur = intervals[i][0];
ans++;
list.add(0 ,cur);
}
}
return ans;
}
}
08-04
215
08-28
1158
07-24
192
10-27
251
07-22
1820
10-20
275
12-11