Skip to content

二分搜索

二分搜索

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

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

学会了左闭右闭,和左闭右开的写法,其实就是人为定义了一个搜索区间,写临界条件时候就看区间能不能取到就可以