Given an array of meeting time intervals [start, end], find the minimum number of conference rooms required.
Sort intervals by start time. Use a min-heap of end times. For each meeting, if earliest-ending room is free, reuse it. Otherwise open a new room.
- Sort intervals by start time.
- Min-heap stores end times of occupied rooms.
- For each interval: if heap.top() <= interval.start, poll (room freed).
- Push interval.end to heap.
- Heap size at end = number of rooms needed.
- Time Complexity: O(N log N)
- Space Complexity: O(N)