classSolution{public:intsearch(vector<int>&nums,inttarget){intl=0;intr=nums.size()-1;while(l<=r){constintm=(l+r)/2;if(nums[m]==target)returnm;if(nums[l]<=nums[m]){// nums[l..m] are sortedif(nums[l]<=target&&target<nums[m])r=m-1;elsel=m+1;}else{// nums[m..n - 1] are sortedif(nums[m]<target&&target<=nums[r])l=m+1;elser=m-1;}}return-1;}};
classSolution{publicintsearch(int[]nums,inttarget){intl=0;intr=nums.length-1;while(l<=r){finalintm=(l+r)/2;if(nums[m]==target)returnm;if(nums[l]<=nums[m]){// nums[l..m] are sortedif(nums[l]<=target&&target<nums[m])r=m-1;elsel=m+1;}else{// nums[m..n - 1] are sortedif(nums[m]<target&&target<=nums[r])l=m+1;elser=m-1;}}return-1;}}
classSolution:defsearch(self,nums:List[int],target:int)->int:l=0r=len(nums)-1whilel<=r:m=(l+r)//2ifnums[m]==target:returnmifnums[l]<=nums[m]:# nums[l..m] are sortedifnums[l]<=target<nums[m]:r=m-1else:l=m+1else:# nums[m..n - 1] are sortedifnums[m]<target<=nums[r]:l=m+1else:r=m-1return-1