int maxConcurrent(List<Interval> intervals) {
List<Event> events = eventsFrom(intervals);
events.sort(this::byTimeThenEndBeforeStart);
int active = 0;
int best = 0;
for (Event event : events) {
active += event.delta;
best = Math.max(best, active);
}
return best;
}
def max_concurrent(intervals) -> int:
active = best = 0
for event in sorted(events_from(intervals), key=by_time_then_end_before_start):
active += event.delta
best = max(best, active)
return best
def maxConcurrent(intervals: Vector[Interval]): Int =
var active = 0
var best = 0
for event <- eventsFrom(intervals).sortBy(byTimeThenEndBeforeStart) do
active += event.delta
best = best.max(active)
best
int maxConcurrent(const std::vector<Interval>& intervals) {
auto events = eventsFrom(intervals);
std::sort(events.begin(), events.end(), byTimeThenEndBeforeStart);
int active = 0, best = 0;
for (const Event& event : events) {
active += event.delta;
best = std::max(best, active);
}
return best;
}