public class Solution {
public boolean search(int[] nums, int target) {
int len = nums.length;
int i = 0;
int j = len - 1;
while (i <= j) {
int mid = i + (j - i) / 2;
if (nums[mid] == target) {
return true;
}
if (nums[mid] > nums[j]) {
if (nums[mid] > target && nums[i] <= target) {
j = mid - 1;
} else {
i = mid + 1;
}
} else if (nums[mid] < nums[j]) {
if (nums[mid] < target && nums[j] >= target) {
i = mid + 1;
} else {
j = mid - 1;
}
} else {
j--; // input [1] 0
}
}
return false;
}
}