美文网首页
2019-09-17 LC 253 Meeting Rooms

2019-09-17 LC 253 Meeting Rooms

作者: Mree111 | 来源:发表于2019-10-08 14:46 被阅读0次

Description

Given an array of meeting time intervals consisting of start and end times [[s1,e1],[s2,e2],...] (si < ei), find the minimum number of conference rooms required.

Example 1:

Input: [[0, 30],[5, 10],[15, 20]]
Output: 2

Solution

首先按照开始time进行排序,保持最小堆存end time, 如果当前最早结束的会议晚于当前要开始的会议,push heap(多一间房) ,else 先pop再push

Time O(NlogN)
Space O(N)

"""
Definition of Interval.
class Interval(object):
    def __init__(self, start, end):
        self.start = start
        self.end = end
"""
import heapq
class Solution:
    """
    @param intervals: an array of meeting time intervals
    @return: the minimum number of conference rooms required
    """
    def minMeetingRooms(self, intervals):
        # Write your code here
        s_inter = sorted(intervals,key= lambda x: x.start)
        inter_heap = [s_inter[0].end]
        
        for s in s_inter[1:]:
            if s.start < inter_heap[0]:
                heapq.heappush(inter_heap,s.end)
            else:
                heapq.heappop(inter_heap)
                heapq.heappush(inter_heap,s.end)
                
                
        return len(inter_heap)

           ```

相关文章

网友评论

      本文标题:2019-09-17 LC 253 Meeting Rooms

      本文链接:https://www.haomeiwen.com/subject/olfcuctx.html