题目链接:https://leetcode.com/problems/search-in-rotated-sorted-array/submissions/
代码
class Solution:
def search(self, nums: List[int], target: int) -> int:
if not nums:
return -1
return self.binarySearch(nums, target, 0, len(nums)-1)
def binarySearch(self, nums, target, start, end):
if end < start:
return -1
mid = start + (end-start)//2
if nums[mid] == target:
return mid
if nums[start] <= target < nums[mid]:# left side is sorted and has target
end=mid-1
elif nums[mid] < target <= nums[end]: # right side is sorted and has target
start=mid+1
elif nums[mid] > nums[end]: # right side is pivoted
start=mid+1
else: # left side is pivoted
end=mid-1
return self.binarySearch(nums, target, start, end)
思路详解
此题,考察在于细心程度,采用的是二分法查找