寻找左边界的二分搜索。
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # 如果目标值存在返回下标,否则返回 -1 # @param nums int整型一维数组 # @param target int整型 # @return int整型 # class Solution: def search(self , nums , target ): # write code here n = len(nums) if n <= 0: return -1 lo, hi = 0, n-1 mid = 0 while lo <= hi: mid = lo+(hi-lo)/2 if nums[mid] < target: lo = mid + 1 else: hi = mid - 1 if mid >= n or mid < 0: return -1 elif nums[mid] == target: return mid elif mid+1 >= n or mid+1 < 0: return -1 elif nums[mid+1] == target: return mid + 1 else: return -1