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.
// Source : https://oj.leetcode.com/problems/search-in-rotated-sorted-array-ii/
// Author : Chao Zeng
// Date : 2015-1-29
class Solution {
public:
bool search(int A[], int n, int target) {
int left = 0;
int right = n - 1;
while (left < right){
int middle = (right + left) / 2;
if (A[middle] > target)
right = middle - 1;
else if (A[middle] < target)
left = middle + 1;
else
return true;
}
//旋转数组开始是降序排列和重复情况
for (int i = 0; i < n ;i++){
if (target == A[i])
return true;
}
return false;
}
};