Beautiful solution. Python solution using the same idea. I used `rooms`

count explicitly instead of using the max queue size for computing total rooms required. We imagine the intervals in sorted order holding meetings one after the other. Whenever a current interval or meeting group finds an earlier interval that ended before the start of the current interval, then the current interval (or meeting group) reuses the old room (which is now vacant) otherwise it creates a new room for itself. Code:

```
class Solution(object):
def minMeetingRooms(self, intervals):
intervals.sort(key=lambda interval: interval.start)
h = []
# Min Heap: Contains (end, start) since we want to be able to poll the interval that ends the earliest
rooms = 0
for interval in intervals:
if h and h[0][0] <= interval.start:
heapq.heappop(h)
else:
rooms += 1
heapq.heappush(h, (interval.end, interval.start))
return rooms
```