Find earliest common meeting slot
Company: Citadel
Role: Software Engineer
Category: Coding & Algorithms
Difficulty: medium
Interview Round: Technical Screen
Quick Answer: This question evaluates proficiency with interval manipulation, timeline merging, and algorithmic reasoning for scheduling constraints, measuring competency in handling sorted interval lists, edge-case sanitization, and complexity analysis.
Constraints
- 1 <= len(calendars) == len(work_windows) <= 100000
- 0 <= total number of busy intervals across all calendars <= 200000
- 0 <= start < end <= 1440
- 0 <= workStart < workEnd <= 1440
- 1 <= d <= 1440
Examples
Input: ([[[540, 570], [630, 660]], [[555, 585], [615, 645]], [[600, 615]]], [[480, 720], [540, 690], [510, 660]], 15)
Expected Output: [585, 600]
Explanation: The common working window is [540, 660). After merging busy times across all three calendars, the first free gap of length 15 is [585, 600).
Input: ([[[540, 600], [620, 660]], [[530, 610]], [[600, 650]]], [[540, 660], [540, 660], [540, 660]], 10)
Expected Output: []
Explanation: All busy intervals merge to cover the entire common working window [540, 660), so no 10-minute slot exists.
Hints
- Any valid meeting must lie inside the intersection of all participants' working windows.
- After clipping busy intervals to that common window, treat each calendar as a sorted stream and merge the K streams with a min-heap instead of flattening everything when K is large.