Suppose a sorted array is rotated at some pivot unknown to you beforehand.
(i.e., 0 1 2 4 5 6 7
might become 4 5 6 7 0 1 2
).
You are given a target value to search. If found in the array return its index, otherwise return -1.
You may assume no duplicate exists in the array.
class Solution { public: int search(int A[], int n, int target) { if(n<=0) return -1; int i = 0,j = n-1; if(target == A[i]) return i; else if(target == A[j]) return j; if(target>A[i]){ while(i<n-1 && target>A[i] && A[i]<A[i+1]){ i++; if(target==A[i]) return i; } return -1; }else if(target<A[j]){ while(j>0 && target<A[j] && A[j]>A[j-1]){ j--; if(target==A[j]) return j; } return -1; }//end if return -1; } };