Overlapping time intervals
by Anton Bagayev
HTML
<p id="intermediate"></p>
<p id="output"></p>
JavaScript
function coveredTimeIntervals(segments) {
segments.sort((x, y) => x[0] - y[0]);
document.getElementById("intermediate").innerHTML = segments;
let result = 0;
let lastEnd = 0;
for(let i = 0; i < segments.length; i++) {
let seg = segments[i];
let segStart = seg[0];
let segEnd = seg[1];
result += Math.max(segEnd - Math.max(lastEnd, segStart), 0);
lastEnd = Math.max(lastEnd, segEnd);
}
return result;
}
let input = [[1,4], [6,8], [2,4], [7,9], [10, 15]] ;
let result = coveredTimeIntervals(input);
document.getElementById("output").innerHTML = result;