Drill

ProblemsJavaScript › events

How many event pairs overlap

hardeventsJavaScript

A room-booking audit counts every pair of events that clash so the worst offenders can be resolved.

conflictPairs(events: list<Event>) → int

Solve it in the editor →

Where you start

function conflictPairs(events) {
  
}

Worked examples

CallResult
conflictPairs([{"start":1,"end":5},{"start":3,"end":8},{"start":10,"end":15}])1
conflictPairs([{"start":1,"end":5},{"start":6,"end":10}])0
conflictPairs([{"start":1,"end":5},{"start":2,"end":4},{"start":3,"end":8}])3
conflictPairs([{"start":1,"end":10},{"start":2,"end":3},{"start":4,"end":5},{"start":6,"end":7}])3

Hint

A brute-force double loop over all i < j pairs and the overlap test from bookings-overlap.

Reference solution in JavaScript
function conflictPairs(events) {
  let count = 0;
  for (let i = 0; i < events.length; i++) {
    for (let j = i + 1; j < events.length; j++) {
      if (events[i].start < events[j].end && events[j].start < events[i].end) count++;
    }
  }
  return count;
}

The same problem in another language

More events problems in JavaScript