1
/**
2
* @param {number[][]} intervals
3
* @return {number}
4
*/
5
var intersectionSizeTwo = function (intervals) {
6
const sortedIntervals = intervals.sort(sortEndsThenStarts);
7
let currentTail = [];
8
let answer = 0;
9
sortedIntervals.forEach((interval) => {
10
const start = interval[0];
11
const end = interval[1];
12
const startPoint = currentTail[0];
13
const lastPoint = currentTail[1];
14

15
if (!currentTail.length || lastPoint < start) {
16
currentTail = [end - 1, end];
17
answer += 2;
18
} else if (startPoint < start) {
19
currentTail = [currentTail[1], end];
20
answer += 1;
21
}
22
});
23
return answer;
24
};
25

26
function sortEndsThenStarts(intervalA, intervalB) {
27
return intervalA[1] < intervalB[1] ? -1 : 1;
28
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0