Optimal Algorithmic Approach
Sort + min-heap of room end times.
Core Invariants & Edge Cases
- Sort meetings by start time
- Min-heap of end times: if next start >= min end, reuse room (pop and push new end)
- Otherwise allocate a new room (push new end); heap size = rooms used