#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 计算成功举办活动需要多少名主持人
# @param n int整型 有n个活动
# @param startEnd int整型二维数组 startEnd[i][0]用于表示第i个活动的开始时间,startEnd[i][1]表示第i个活动的结束时间
# @return int整型
#
class Solution:
def minmumNumberOfHost(self , n: int, startEnd: List[List[int]]) -> int:
# write code here
points = []
for term in startEnd:
points.append(term[0])
points.append(term[1])
points = list(set(points))
points = sorted(points)
mark = [0] * len(points)
# print("points",points)
# print(points)
for term in startEnd:
start_point = term[0]
end_point = term[1]
i = self.bfs(points,start_point)
mark[i] += 1
i = self.bfs(points,end_point)
mark[i] -= 1
res = 0
current = 0
# print(mark)
for i in mark:
current += i
res = max(res,current)
return res
def bfs(self,nums,i):
start,end = 0,len(nums)-1
while start<=end:
mid = int((start+end)/2)
if nums[mid]==i:
return mid
if nums[mid]<i:
start = mid+1
else:
end = mid-1
return -1