22 lines
483 B
Python
22 lines
483 B
Python
# 查找最后一个等于或者大于key的元素
|
|
def findLastEqualSmaller(arr, key):
|
|
left = 0
|
|
right = len(arr) - 1
|
|
length = len(arr)
|
|
|
|
# 这里必须是 <=
|
|
while left <= right:
|
|
mid = (left + right) // 2
|
|
if arr[mid] >= key:
|
|
right = mid - 1
|
|
else:
|
|
left = mid + 1
|
|
if left>=length:
|
|
left=length-1
|
|
return left
|
|
|
|
|
|
arr=[6,3,4,1,9]
|
|
idx = findLastEqualSmaller(arr,11)
|
|
print('Idx:',idx)
|
|
print('Value:',arr[idx]) |