33. Search in Rotated Sorted Array (Medium) - TengnanYao/daily_leetcode GitHub Wiki
class Solution(object):
def search(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: int
"""
l, r = 0, len(nums) - 1
while l <= r:
m = (l + r) // 2
if nums[m] == target:
return m
if nums[m] > target:
if nums[l] <= target or nums[r] > nums[m]:
r = m - 1
else:
l = m + 1
else:
if target <= nums[r] or nums[l] < nums[m]:
l = m + 1
else:
r = m - 1
return -1