Search in Rotated Sorted Array
来源:互联网 发布:寻求淘宝合作伙伴 编辑:程序博客网 时间:2024/04/30 01:10
public int search(int[] A, int target) { // Start typing your Java solution below // DO NOT write main() function if(A.length == 0) return -1; return search(A, target, 0, A.length - 1); } public int search(int[] A, int target, int start, int end) { if(start > end) return -1; int middle = start + (end - start) / 2; if(A[middle] == target) { return middle; } if(A[start] < A[middle]) { if(A[middle] > target && A[start] <= target) return search(A, target, start, middle - 1); else return search(A, target, middle + 1, end); }else if (A[start] > A[middle]){ if(A[middle] < target && A[end] >= target) return search(A, target, middle + 1, end); else return search(A, target, start, middle - 1); }else {//consider the boundary for start == middle return search(A, target, middle + 1, end); } }