class Solution {
public:
int search(vector<int>& nums, int target) {
int l=0,r=nums.size()-1;
while(l<=r){
int mid = (l+r)/2;
if(nums[mid]==target) return mid;
if(nums[0]<=nums[mid]){//如果mid左边是有序的
if(nums[l]<=target&&nums[mid]>target){
r = mid-1;
}else{
l = mid+1;
}
}else{//如果mid右边是有序的
if(nums[r]>=target&&nums[mid]<target){//注意等于号
l = mid+1;
}else{
r = mid-1;
}
}
}
return -1;
}
};