思路:
一个有序数组经过了旋转。给定一个目标值,如果target存在于数组,返回下标。时间复杂度要求O(logn)。
from typing import List class Solution: def search(self,nums:List[int],target:int)->int: if not nums: return nums n=len(nums) left=0 right=n-1 while left<=right: mid=(left+right)//2 if nums[mid]==target: return mid if nums[left]<=nums[mid]: #左边有序 if nums[left]<=target<nums[mid]: right=mid-1 else: left=mid+1 else: #右边有序 if nums[mid]<target<=nums[right]: left=mid+1 else: right=mid-1 return -1