Search in Rotated Sorted Array II

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) {
         if(n== 0return  false;
        
         return binary(A, 0,n- 1,target);
    }
     bool binary( int A[], int x1, int x2, int target)
    {
         if(x1>x2)  return  false;
        
         int m=(x1+x2)/ 2;
         if(A[m]==target)  return  true;
         if(A[x1]<A[x2])
        {
             if(A[m]<target)  return binary(A,m+ 1,x2,target);
             else  return binary(A,x1,m- 1,target);
        }
         else
        {
             return binary(A,x1,m- 1,target) || binary(A,m+ 1,x2,target);
        }
    }
};  

你可能感兴趣的:(search)