二分法查找有序数组中大于等于v的第一个数

2019-02-19  本文已影响0人  小蛋子

题目要求:有序数组L,利用二分法查找数组中第一个大于等于v的数,如果不存在,则返回-1

def findFirst(L, k):
    if not L or L[-1] < k:
        return -1
    
    start = 0
    end = len(L) - 1
    while start < end:
        if L[start] >= k:
            return start
        
        mid = (end + start) // 2
        if L[mid] < k:
            start = mid + 1
        else:
            end = mid
        
    return end
上一篇 下一篇

猜你喜欢

热点阅读