class Solution {
public:
bool 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 true;
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//特别注意第四种情况 mid=start或者end中的一个
{
if(nums[mid]==nums[start])
start++;
else
end--;
}
}
return false;
}
};
81. Search in Rotated Sorted Array II
最新推荐文章于 2023-11-12 22:36:10 发布