1 public class Solution { 2 public int search(int[] A, int target) { 3 // IMPORTANT: Please reset any member data you declared, as 4 // the same Solution instance will be reused for each test case. 5 if(A == null) 6 return -1; 7 int left = 0; 8 int right = A.length - 1; 9 while(left <= right) 10 { 11 int mid = (left + right) / 2; 12 if(A[mid] == target) 13 return mid; 14 if(A[left] <= A[mid]) 15 { 16 if(target < A[mid] && target >= A[left]) 17 right = mid - 1; 18 else 19 left = mid + 1; 20 } 21 else 22 { 23 if(target > A[mid] && target <= A[right]){ 24 left = mid + 1; 25 } 26 else 27 { 28 right = mid - 1; 29 } 30 } 31 } 32 return -1; 33 } 34 }