class Solution {
public:
bool search(int A[], int n, int target) {
// IMPORTANT: Please reset any member data you declared, as
// the same Solution instance will be reused for each test case.
int low=0;
int high=n-1;
while(low<=high)
{
int middle=(low+high)/2;
if(A[middle]==target) return true;
if(A[low]<A[middle])
{
if(A[low]<=target&&target<A[middle])
{
high=middle-1;
}
else
{
low=middle+1;
}
}
else if(A[low]>A[middle])
{
if(A[middle]<target&&target<=A[high])
{
low=middle+1;
}
else
{
high=middle-1;
}
}
else if(A[middle]==A[low])
{
low++;
}
}
return false;
}
};
public:
bool search(int A[], int n, int target) {
// IMPORTANT: Please reset any member data you declared, as
// the same Solution instance will be reused for each test case.
int low=0;
int high=n-1;
while(low<=high)
{
int middle=(low+high)/2;
if(A[middle]==target) return true;
if(A[low]<A[middle])
{
if(A[low]<=target&&target<A[middle])
{
high=middle-1;
}
else
{
low=middle+1;
}
}
else if(A[low]>A[middle])
{
if(A[middle]<target&&target<=A[high])
{
low=middle+1;
}
else
{
high=middle-1;
}
}
else if(A[middle]==A[low])
{
low++;
}
}
return false;
}
};