对有重复数组的情况也有效
public class Solution { public boolean search(int[] A, int target) { int left = 0, right = A.length - 1; while( left <= right){ int mid = (left + right)/2; if(A[mid] == target) return true; if(A[left] < A[mid]){ if(target <= A[mid] && target >= A[left]) right = mid - 1; else left = mid + 1; } else if (A[left] > A[mid]){ if(target >= A[left] || target <= A[mid]) right = mid -1; else left = mid + 1; } else left ++; } return false; }}