Given an array of meeting time intervals [start, end], return the minimum number of conference rooms required to hold them all.
A room is reusable the moment its meeting ends: a meeting ending at 10 and another starting at 10 can share one room.