Meeting Rooms II
题目描述
解题方法
用一个min heap记录之前的meeting的结束时间,如果结束时间在当前meeting start 之前,就可以减少一个room了。
Solution
from operator import attrgetter
from heapq import *
# Definition for an interval.
# class Interval(object):
# def __init__(self, s=0, e=0):
# self.start = s
# self.end = e
class Solution(object):
def minMeetingRooms(self, intervals):
"""
:type intervals: List[Interval]
:rtype: int
"""
length = len(intervals)
if length < 1:
return 0
intervals.sort(key=attrgetter("start"))
max_rooms = 0
result = 0
heap = []
for i in range(length):
result += 1
while heap and heap[0] <= intervals[i].start:
heappop(heap)
result -= 1
max_rooms = max(max_rooms, result)
heappush(heap, intervals[i].end)
return max_rooms