classSolution:defsearch(self,nums: List[int],target:int) ->int: l, r =0,len(nums)# [l, r) 左闭右开区间while l < r: m = l + (r - l) //2if nums[m]== target:return mif nums[0]< nums[m]:# 此时 m 左边是有序的if nums[l]<= target < nums[m]:# 如果 target 在有序部分, 即在左侧 r = melse: l = m +1else:# 此时 m 右边是有序的if nums[m]< target <= nums[r -1]:# r 是开区间, 所以 - 1# 如果 target 在有序部分, 此时在右侧 l = m +1else: r = m # 右边界return-1