โ† Back to Index

๐Ÿ“š Employee Free Time โ€“ Java Cheat Sheet (One Page)

๐Ÿ“Œ What Is It?

The Employee Free Time problem involves finding the common free time intervals across multiple employees' schedules. Each employee's schedule is represented as a list of non-overlapping intervals.

๐Ÿงฑ Pattern Template

public List employeeFreeTime(List> schedule) {
    List allIntervals = new ArrayList<>();
    for (List employee : schedule) {
        allIntervals.addAll(employee);
    }

    // Sort intervals by start time
    allIntervals.sort((a, b) -> Integer.compare(a.start, b.start));

    List freeTime = new ArrayList<>();
    Interval prev = allIntervals.get(0);

    for (int i = 1; i < allIntervals.size(); i++) {
        Interval curr = allIntervals.get(i);
        if (prev.end < curr.start) {
            // Gap found
            freeTime.add(new Interval(prev.end, curr.start));
        }
        prev = prev.end >= curr.end ? prev : curr;
    }

    return freeTime;
}

โœ… Use Cases

๐Ÿ“˜ Common LeetCode Problems

๐Ÿงช Example: Employee Free Time

Input: schedule = [[[1,2],[5,6]],[[1,3]],[[4,10]]]
Output: [[3,4]]
Explanation: There is a free time gap between [3,4].

๐Ÿ’ก Pro Tips