philosyang.com

704. Binary Search

a textbook example of binary search.

 1class Solution:
 2    def search(self, nums: List[int], target: int) -> int:
 3        l = 0
 4        r = len(nums) - 1
 5
 6        while l <= r:
 7            m = (l + r) // 2
 8            if nums[m] == target:
 9                return m
10            elif nums[m] < target:
11                l = m + 1
12            else:
13                r = m - 1
14
15        return -1

wrong ideas:

 1class Solution:
 2    def search(self, nums: List[int], target: int) -> int:
 3        l = 0
 4        m = n // 2
 5        r = len(nums) - 1
 6
 7        while nums[m] != target:
 8            if r - l <= 1:
 9                return -1
10            if nums[m] > target:
11                r = m
12                m = (l + r) // 2
13            else:
14                l = m
15                m = ((l + r) // 2) + 1
16
17        return m

#Neetcode150 #Binary-Search #Python