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.
class Solution { public: bool search(int A[], int n, int target) { // Start typing your C/C++ solution below // DO NOT write int main() function if(A == NULL || n <1) return false; int left = 0; int right = n-1; while(left <= right){ int mid = (right - left)/2 + left; if(A[mid] == target) return true; if(A[mid] > A[left]) { if(target >= A[left] && target < A[mid]) right = mid - 1; else left = mid + 1; }else if(A[mid] < A[left]){ if(target <= A[right] && target > A[mid]) left = mid + 1; else right = mid -1; }else{ if(A[left] == target) return true; ++left ; } } return false; } };