
class Solution {
public:
int search(vector<int>& nums, int target) {
int size=nums.size()-1;
int left=0;
int right=size;
while(left<=right){
int mid=left+(right-left)/2;
if(nums[mid] == target)
return mid;
else if(nums[mid] < nums[right]){
if(nums[mid]<target && target<=nums[right])
left=mid+1;
else
right=mid-1;
}
else{
if(nums[left]<=target && target<nums[mid])
right=mid-1;
else
left=mid+1;
}
}
return -1;
}
};

class Solution {
public:
int search(vector<int>& nums, int target) {
int size=nums.size();
if (size == 0) {
return false;
}
if (size == 1) {
return nums[0] == target;
}
int left=0;
int right=size-1;
while(left<=right){
int mid=left+(right-left)/2;
if(nums[mid] == target)
return true;
if (nums[left] == nums[mid] && nums[mid] == nums[right]) {
++left;
--right;
} else if(nums[left] <= nums[mid]){
if(nums[left]<=target && target<nums[mid])
right=mid-1;
else
left=mid+1;
}
else{
if(nums[mid]<target && target<=nums[size-1])
left=mid+1;
else
right=mid-1;
}
}
return false;
}
};
https://leetcode-cn.com/problems/search-in-rotated-sorted-array/solution/yi-wen-dai-ni-shua-bian-er-fen-cha-zhao-dtadq/