5/30/2014

50. Search in Rotated Sorted Array

public class Solution {
    public int search(int[] A, int target) {
        if (A.length<=0) return -1;
        return mySearch(A, 0, A.length-1, target);
    }
   
    public int mySearch(int[] A, int head, int back, int target) {
        if (head>back) return -1;
        else {
            int mid=(head+back)/2;
       
            if (target==A[mid]) return mid;
       
            if (A[mid]>=A[head]) {
                if (target<=A[mid] && target>=A[head]) return mySearch(A, head, mid-1, target);
                else return mySearch(A, mid+1, back, target);
            }
       
            if (A[mid]<A[head]) {
                if (target<=A[mid] || target>=A[head]) return mySearch(A, head, mid-1, target);
                else return mySearch(A, mid+1, back, target);
            }
       
            return -1;
        }
    }
}

没有评论:

发表评论