leetcode_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) {

        // 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;

    }

};

 

你可能感兴趣的:(LeetCode)