添加链接描述
class Solution:def search(self, nums: List[int], target: int) -> int:left,right=0,len(nums)-1while left<=right:mid = left+(right-left)//2if nums[mid]==target:return midelif nums[mid]<nums[right]:if target>nums[mid] and target<=nums[right]:left=mid+1else:right=mid-1else:if target>=nums[left] and target<nums[mid]:right=mid-1else:left=mid+1return -1
思路:
- 因为不管target落在哪个部分中,target都在有序数组里,所以可以使用二分法
- 大的if_else条件语句就是在判断target落在前有序数组中还是后有序数组中