二分加哈希表加排序
def findRightInterval(self, intervals):
"""
:type intervals: List[List[int]]
:rtype: List[int]
"""
def bs(array,k):
l,r = 0,len(intervals)-1
if array[r] < k:
return -1
while l <= r:
m = l + (r-l)//2
if array[m] < k:
l = m+1
else:
r = m-1
return l
array = [0]*len(intervals)
nums = collections.defaultdict()
res = [-1]*len(intervals)
for x in range(len(intervals)):
array[x] = intervals[x][0]
for k in range(len(array)):
nums[array[k]] = k
array.sort()
for i in range(len(intervals)):
y = bs(array,intervals[i][1])
if y == -1:
res[i] = -1
else:
res[i] = nums.get(array[y])
return res