利用二分查找做
public boolean search(int[] nums, int target) {
//利用二分查找
int left1=0;
int right2=nums.length-1;
while(left1<=right2){
int mid=(left1+right2)/2;
if(target==nums[mid]){
return true;
}
if(nums[mid]==nums[left1]){
left1++;
// right2--;
continue;
}
if(nums[mid]>nums[left1]){
//前半部分有序
if(nums[mid]>target&&nums[left1]<=target){
right2=mid-1;
}else {
//去后半部分找
left1=mid+1;
}
}else {
//后边部分有序
if(nums[mid]<target&&nums[right2]>=target){
left1=mid+1;
}else {
right2=mid-1;
}
}
}
return false;
}