二分法查找

73 阅读1分钟

给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target  ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。

class Solution:
    def search(self, nums: List[int], target: int) -> int:
        low = 0
        high = len(nums) - 1
        while low <= high:
            middle = int((low + high) / 2)
            if target == nums[middle]:
                return middle
            if target  > nums[middle]:
               low = middle + 1
            if target < nums[middle]:
               high = middle - 1
        return -1