python 处理二分法,每次得到数值后先不要return,将right-1继续跑完,这样如果有比它小的数会自动覆盖到原来的结果上。
class Solution:
def search(self , nums , target ):
left,right,tmp=0,len(nums)-1,None
while left<=right:
mid=int(left+(right-left)/2)
if nums[mid]==target: tmp=mid right=right-1 elif nums[mid]<target: left=mid+1 elif nums[mid]>target: right=mid-1 return tmp if tmp is not None else -1