写个二分查找吧~

    技术2022-07-11  94

    def bi_search(arr, t): if not arr or t < arr[0] or t > arr[-1]: # 边界情形 return None begin, end = 0, len(arr) - 1 while begin <= end: mid = begin + (end - begin) // 2 # 防止大数相加溢出 if t == arr[mid]: return mid elif t < arr[mid]: end = mid - 1 elif t > arr[mid]: begin = mid + 1 return None arr1 = [1, 2, 2, 4, 5, 7, 7, 8, 9, 9, 10] arr2 = [2] arr3 = [2, 2] arr4 = [] # 不能进行索引 for arr in [arr1, arr2, arr3, arr4]: print(bi_search(arr, 10))

    区间思维

    Processed: 0.009, SQL: 10