题解 | 主持人调度(二)

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 计算成功举办活动需要多少名主持人
# @param n int整型 有n个活动
# @param startEnd int整型二维数组 startEnd[i][0]用于表示第i个活动的开始时间,startEnd[i][1]表示第i个活动的结束时间
# @return int整型
#
import heapq
class Solution:
    def minmumNumberOfHost(self , n: int, startEnd: List[List[int]]) -> int:
        # write code here
        q = []
        import heapq
        startEnd.sort() # 按照开始时间、结束时间的顺序排序
        zhuchiren = []

        for j in range(len(startEnd)):
            start, end = startEnd[j][0], startEnd[j][1]
            if zhuchiren == []:
                heapq.heappush(zhuchiren, end)
                continue
            if zhuchiren[0] <= start: #最早有空的主持人在活动开始之前就有空了
                heapq.heappop(zhuchiren)
            heapq.heappush(zhuchiren, end) # 新加一个主持人
            
        return len(zhuchiren)

全部评论

相关推荐

不愿透露姓名的神秘牛友
09-23 18:40
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务