Search⌘ K
AI Features

Employee Free Time

Understand how to identify common free time intervals across multiple employee schedules. This lesson helps you solve overlapping interval problems by mapping out intervals, analyzing schedules, and implementing efficient solutions. You will gain a clear approach to detect finite free periods between earliest and latest meeting times, a key skill in coding interviews on intervals.

Statement

You’re given a list containing the schedules of multiple employees. Each person’s schedule is a list of non-overlapping intervals in sorted order. An interval is specified with the start and end time, both being positive integers. Your task is to find the list of finite intervals representing the free time for all the employees.

Note: The common free intervals are calculated between the earliest start time and the latest end time of all meetings across all employees.

Constraints:

  • 11 \leq schedule.length , schedule[i].length 50\leq 50

  • 00 \leq interval.start < interval.end 108\leq 10^8, where interval is any interval in the list of schedules.

Examples

canvasAnimation-image
1 / 3

Understand the problem

Let’s take a moment to make sure you’ve correctly understood the problem. The quiz below helps you check if you’re solving the correct problem:

Employee Free Time

1.

From the given list of employee schedules, find the list of intervals representing the free time for all the employees.

[[[3, 5], [8, 10]], [[4, 6], [9, 12]], [[5, 6], [8, 10]]]

A.

[[2, 8]]

B.

[[6, 8]]

C.

[[2, 6]]

D.

[[4, 6]]


1 / 3

Figure it out!

We have a game for you to play. Rearrange the logical building blocks to develop a clearer understanding of how to solve this problem.

Sequence - Vertical
Drag and drop the cards to rearrange them in the correct sequence.

1
2
3
4
5
6
7

Try it yourself

Implement your solution in EmployeeFreeTimes.java in the following coding playground. We have provided the definition of the Interval class in the other file. You may add functionality to this class if you wish.

Java
usercode > Solution.java
import java.util.*;
class Solution {
public static List<Interval> employeeFreeTime(List<List<Interval>> schedule) {
// Replace this placeholder return statement with your code
List<Interval> ans = new ArrayList<Interval>();
return ans;
}
}
Employee Free Time