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;