Follow up for "Search in Rotated Sorted Array":
What if duplicates are allowed?
Would this affect the run-time complexity? How and why?
Write a function to determine if a given target is in the array.
#include <iostream>
using namespace::std;
bool search(int A[], int n, int target){
int first=0, end=n;
while(first < end){
int middle = (first+end)/2;
if(A[middle] == target){
return true;
}
if(A[first] < A[middle]){
if(target >= A[first] && target < A[middle]){
end = middle;
}else{
first = middle+1;
}
}else if(A[first] > A[middle]){
if(target > A[middle] && target <= A[end-1]){
first = middle+1;
}else{
end = middle;
}
}else{
first ++;
}
}
return false;
}
int main()
{
int A[]={1,1,1,2,2,3};
bool flag = search(A, 6, 2);
cout << flag << endl;
return 0;
}