欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

LC.253. Meeting Rooms II

程序员文章站 2022-06-02 22:43:10
...

LC.253. Meeting Rooms II

class Solution(object):
    def minMeetingRooms(self, intervals):
        """
        greedy思想:
        arrange 数组保存已经开辟的会议室, array[i]表示第i个会议室最后一次被使用的时间
        对于每一个start end from interval, arrage 中满足条件的时间相邻最近的会议室
        找不到的话重新开辟一个
        """
        intervals.sort(key=lambda x:x[0])
        arrage = []
        for start, end in intervals:
            index = -1
            distance = float('inf')
            for i in range(len(arrage)):
                if arrage[i] <= start:
                    if start - arrage[i] < distance:
                        distance = start - arrage[i]
                        index = i
            if index != -1:
                arrage[index] = end
            else:
                arrage.append(end)
        return len(arrage)
``