欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-03-16 14:34:46
...

题目要求:有序数组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