leetcode

Leetcode submissions
git clone git://git.laack.co/leetcode.git
Log | Files | Refs | README

binary-search.py (664B)


      1 class Solution:
      2     def search(self, nums: List[int], target: int) -> int:
      3 
      4         done = False
      5         lower = 0
      6         upper = len(nums) - 1
      7 
      8         while not done:
      9 
     10             diff = upper - lower
     11             center = (diff // 2) + lower
     12 
     13             if upper == lower or lower + 1 == upper:
     14                 if nums[lower] == target:
     15                     return lower
     16                 if nums[upper] == target:
     17                     return upper
     18                 return -1
     19 
     20             if nums[center] == target:
     21                 return center
     22 
     23             if nums[center] < target:
     24                 lower = center
     25             else:
     26                 upper = center