class Solution {
public:
int search(vector<int>& nums, int target) {
int left = 0, right = nums.size(), middle = 0;
while(left!=right){
middle = (left+right)/2;
if(nums[middle] == target) return middle;
if(nums[middle]>nums[left]){
if(nums[left]<=target&&nums[middle]>target)
right = middle;
else{
left = middle + 1;
}
}
else{
// 判断是否在右边,但是得注意边界 right-1;
if(nums[middle]<target&&nums[right-1]>=target){
left = middle + 1;
}else{
right = middle;
}
}
}
return -1;
}
};
33. Search in Rotated Sorted Array