leetcode

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

searchArray.py (928B)


      1 # This was really quite hard.
      2 class Solution:
      3     def search(self, nums: List[int], target: int) -> int:
      4 
      5         left = 0
      6         right = len(nums) - 1
      7 
      8         while left <= right:
      9 
     10             center = ((right - left) // 2) + left
     11 
     12             if nums[center] == target:
     13                 return center
     14 
     15             # CENTER IS ON LEFT SIDE
     16             if nums[0] <= nums[center]:
     17                 if target > nums[center]:
     18                     left = center + 1
     19                 else:
     20                     if target < nums[0]:
     21                         left = center + 1
     22                     else:
     23                         right = center - 1
     24             else:
     25                 if target < nums[center]:
     26                     right = center - 1
     27                 else:
     28                     if target >= nums[0]:
     29                         right = center - 1
     30                     else:
     31                         left = center + 1
     32         return -1