123456789101112131415161718192021222324252627282930313233## 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可## 计算成功举办活动需要多少名主持人# @param n int整型 有n个活动# @param startEnd int整型二维数组 startEnd[i][0]用于表示第i个活动的开始时间,startEnd[i][1]表示第i个活动的结束时间# @return int整型#将活动开始时间写入一个列表starts,进行排序。# 将活动结束时间写入一个列表ends,进行排序。# 每次活动开始时,需要增加一个主持人上场,每次活动结束时候可以释放一个主持人。# 所以按照时间先后顺序对starts进行遍历,每次有活动开始count++,每次有活动结束count--# 在count最大的时候,即是需要主持人最多的时候class Solution: def minmumNumberOfHost(self , n , startEnd ): starts=[] ends=[] for start,end in startEnd: starts.append(start) ends.append(end) starts.sort() ends.sort() i,j,count,res=0,0,0,0 # count:正在工作的主持人数,res:最大主持人数 for time in starts: while(i<n and starts[i]<=time): # 计算开始的主持人数 i+=1 count+=1 while(j<n and ends[j]<=time): # 计算结束开始的主持人数 j+=1 count-=1 res=max(count,res) return res