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.
public class Solution { public boolean search(int[] A, int target) { boolean isIn = false; int index = findMin(A); if(index == 0) isIn = (Arrays.binarySearch(A, 0, A.length, target) >= 0); else isIn = (Arrays.binarySearch(A, 0, index, target) >= 0) || (Arrays.binarySearch(A, index, A.length, target) >= 0); return isIn; } public static int findMin(int[] A){ int i = A.length - 1; for(; i > 0; --i){ if(A[i] < A[i - 1]) break; } return i; } }