Search in Rotated Sorted Array II
class Solution(object):
def search(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: bool
"""
if len(nums)==0:
return False
start, end = 0, len(nums)-1
while start + 1 < end:
mid = (start + end)/2
if nums[mid] == nums[end]:
end -= 1
# 右边是有序
elif nums[mid] < nums[end]:
if target < nums[mid] or target > nums[end]:
end = mid
else:
start = mid
# 左边有序
else:
if target > nums[mid] or target < nums[start]:
start = mid
else:
end = mid
if nums[start] == target or nums[end] == target:
return True
else:
return FalseLast updated