题目描述:
解题思路:
二分查找或者叫折半查找!
因为每经过一次,规模都会折半,所以时间复杂度为:O(log n)
代码:
class Solution:
def search(self, nums: List[int], target: int) -> int:
start = 0
end = len(nums)-1
while start <= end:
# 这里使用整除//
middle = (start + end) // 2
if nums[middle] == target:
return middle
elif nums[middle] > target:
end = middle - 1
elif nums[middle] < target:
start = middle + 1
# 在这个数组中没有找到
return -1