Search in Rotated Sorted Array
class Solution(object):
def search(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: int
"""
if len(nums)==0:
return -1
start, end = 0, len(nums)-1
while start+1<end:
mid = (start+end)/2
#left part of the list are sorted
if nums[mid] > nums[end]:
if target > nums[mid] or target < nums[start]:
start = mid
else:
end = mid
#right parts are sorted
else:
if target < nums[mid] or target > nums[end]:
end = mid
else:
start = mid
if nums[start] == target:
return start
elif nums[end] == target:
return end
return -1Last updated