class Solution {
public boolean search(int[] nums, int target) {
if(nums.length == 0){
return false;
}
int left = 0;
int right = nums.length - 1;
while(left <= right){
int mid = left + (right - left)/2;
if(nums[mid] == target){
return true;
}
if (nums[left] == nums[mid]) {
for (int i = left; i <= right; i++) {
if (nums[i] == target) {
return true;
}
}
}
//前半段有序
if(nums[mid] > nums[left]){
if(target < nums[mid] && target >= nums[left]){
right = mid - 1;
}
else{
left = mid + 1;
}
}
else{
if(target > nums[mid] && target <= nums[right]){
left = mid + 1;
}
else{
right = mid - 1;
}
}
}
return false;
}
}