Search in Rotated Sorted Array II
class Solution {
public boolean search(int[] nums, int target) {
if(nums == null || nums.length == 0) return false;
int start = 0, end = nums.length - 1;
while(start + 1 < end){
int mid = start + (end - start) /2;
if(target == nums[mid])
return true;
if(nums[start] == nums[mid] && nums[mid] == nums[end]){
end--;
start++;
}
//等号不能省略
else if(nums[mid] >= nums[start]){
if(target >= nums[start] && target <= nums[mid]){
end = mid;
}else{
start = mid;
}
}else{
if(target >= nums[mid] && target <= nums[end]){
start = mid;
}else{
end = mid;
}
}
}
if(nums[start] == target || nums[end] == target){
return true;
}
return false;
}
}Last updated