704. Binary Search

https://leetcode.com/problems/binary-search/

solution

  • 左闭右闭

class Solution:
    def search(self, nums: List[int], target: int) -> int:
        l = 0
        r = len(nums) - 1  # 闭区间

        while l <= r:  # 可能相等
            mid = l + (r - l) // 2
            if nums[mid] > target:
                r = mid - 1  # right - 1
            elif nums[mid] < target:
                l = mid + 1
            else:
                return mid  # 输出mid
        return -1

时间复杂度:O(logn) 空间复杂度:O(1)

  • 左闭右开

  • 左闭右开-lower bound

  • 左闭右开-higher bound

follow up

35. Search Insert Position

74. Search a 2D Matrix

*702. Search in a Sorted Array of Unknown Size

Last updated