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
京公网安备 11010502036488号