leetcode

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

binary-searchV2.py (593B)


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