33. Search in Rotated Sorted Array
class Solution {
public:
int search(vector<int>& nums, int target) {
if(nums.size()==0)
return -1;
int start=0,end=nums.size()-1;
while(start+1<end){
int mid=(end-start)/2+start;
if(nums[mid]==target)
return mid;
else if(nums[start]<nums[mid]){
if(nums[start]<=target && target<nums[mid])
end=mid-1;
else
start=mid+1;
}
else{
if(nums[mid]<target && target<=nums[end])
start=mid+1;
else
end=mid-1;
}
}
if(nums[start]==target)
return start;
if(nums[end]==target)
return end;
return -1;
}
};