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)