二分查找前提:有序数组,无重复元素(若重复返回不唯一)
class Solution:
def search(self, nums: List[int], target: int) -> int:
left = 0
right = len(nums)-1
while left<=right:
mid = (left+right)//2 #//代表地板除(floor),只取小数点前的部分
if nums[mid] < target:
left = mid + 1
elif nums[mid] > target:
right = mid - 1
else:
return mid
return -1