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);        }    }  


原创粉丝点击