class Solution {
public:
int search(vector<int>& nums, int target) {
int start,end,mid;
start=0;
end=nums.size()-1;
while(start<=end)
{
mid=(start+end)/2;
if(nums[mid]==target)
return mid;
else if(nums[mid]<nums[start]&&nums[mid]<nums[end])
{
if(target>nums[mid]&&target<=nums[end])
{
start=mid+1;
}
else
{
end=mid-1;
}
}
else if(nums[mid]>nums[start]&&nums[mid]>nums[end])
{
if(target>=nums[start]&&target<nums[mid])
{
end=mid-1;
}
else
{
start=mid+1;
}
}
else if(nums[mid]>nums[start]&&nums[mid]<nums[end])
{
if(target<=nums[end]&&target>nums[mid])
{
start=mid+1;
}
else
{
end=mid-1;
}
}
else
{
start++;
}
}
return -1;
}
};
33. Search in Rotated Sorted Array
最新推荐文章于 2020-08-05 08:57:53 发布