253. Meeting Rooms II

因为先做的Q1169,有经验了,就先直接写了brute force,直接过了,还挺快的。

01/06/2021 Update:

之前的方法用 array rooms维护了会议室的占用时段,所以遍历 meeting 的时候,每次都需要检查整个 rooms 才能确认哪个是空闲的。如果用 min heap 来替代 array,最早结束的保持在最前,就缩短了检查过程。

class Solution:
    def minMeetingRooms(self, intervals: List[List[int]]) -> int:
        intervals.sort()
        rooms = []
        for (start, end) in intervals:
            found = False
            for n, block in enumerate(rooms):
                if block[1] <= start:
                    rooms[n] = [start, end]
                    found = True
                    break
            if not found:
                rooms.append([start, end])
        return len(rooms)

Last updated

Was this helpful?