Untitled
unknown
plain_text
9 months ago
1.1 kB
5
Indexable
import java.util.*;
public class Solution {
public List<Interval> employeeFreeTime(List<List<Interval>> schedule) {
List<Interval> allIntervals = new ArrayList<>();
// Flatten all intervals into a single list
for (List<Interval> employee : schedule) {
allIntervals.addAll(employee);
}
// Sort intervals by their start times
allIntervals.sort((a, b) -> Integer.compare(a.start, b.start));
// Merge intervals and find free time
List<Interval> freeTime = new ArrayList<>();
Interval prev = allIntervals.get(0);
for (int i = 1; i < allIntervals.size(); i++) {
Interval cur = allIntervals.get(i);
if (cur.start <= prev.end) { //// Merge intervals
prev.end = Math.max(prev.end, cur.end);
} else {
// Found a gap
freeTime.add(new Interval(prev.end, cur.start));
prev = cur; // Move prev to cur
}
}
return freeTime;
}
}
Editor is loading...
Leave a Comment