Untitled

 avatar
unknown
plain_text
15 days ago
1.1 kB
1
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;
    }
}
Leave a Comment