import heapq  

class Solution:  
    def minmumNumberOfHost(self, n: int, startEnd: List[List[int]]) -> int:  
        # 根据活动的开始时间对活动进行排序  
        startEnd.sort(key=lambda x: x[0])  
  
        # 初始化一个最小堆来存储当前正在进行的活动的结束时间  
        heap = []  
        # 初始化主持人数量  
        hosts = 1  
  
        for start, end in startEnd:  
            # 如果堆不为空且堆顶的活动与新活动冲突  
            if heap and heap[0] > start:  
                # 需要一个新的主持人  
                hosts += 1  
            elif heap:
                heapq.heappop(heap)
            # 将新活动的结束时间推入堆中  
            heapq.heappush(heap, end)  
  
        return hosts