Given an array of meeting time intervals [[start, end], ...], return the minimum number of conference rooms required.
[[0,30],[5,10],[15,20]]2start ≥ peek() → poll (reuse), else new room. Offer(end)The min-heap tracks when rooms free up. If the earliest-ending meeting ends before the current meeting starts, we reuse that room. Otherwise we need a new room. Heap size = concurrent meetings = rooms needed.