fork download
  1. from typing import List
  2.  
  3. class Solution:
  4. def search(self, nums: List[int], target: int) -> int:
  5. n = len(nums)
  6. low = 0
  7. high = n - 1
  8.  
  9. while low <= high:
  10. mid = (low + high) // 2
  11.  
  12. if nums[mid] == target:
  13. return mid
  14. else:
  15. current = nums[mid]
  16.  
  17. # Right part sorted
  18. if current <= nums[n - 1]:
  19. if target <= nums[n - 1]:
  20. if current < target:
  21. low = mid + 1
  22. else:
  23. high = mid - 1
  24. else:
  25. high = mid - 1
  26.  
  27. # Left part sorted
  28. else:
  29. if target >= nums[0]:
  30. if current < target:
  31. low = mid + 1
  32. else:
  33. high = mid - 1
  34. else:
  35. low = mid + 1
  36.  
  37. return -1
Success #stdin #stdout 0.15s 16500KB
stdin
Standard input is empty
stdout
Standard output is empty