题目链接:https://leetcode.com/problems/search-in-rotated-sorted-array-ii/
思路同33题,搜索旋转排序数组。
只不过在这次有重复元素的时候,当nums[mid]==nums[left]的时候,我们
无法判断究竟该划分哪一部分,此时就让left++即可。
AC 0ms 100% Java:
class Solution {
public boolean search(int[] nums, int target) {
if(nums.length==0)
return false;
int left=0,right=nums.length-1;
while(left<=right){
int mid=(left+right)/2;
if(nums[mid]==target)
return true;
if(nums[mid]==nums[left])
left++;
else if(nums[mid]>nums[left]){
if(target>=nums[left]&&target<nums[mid])
right=mid-1;
else
left=mid+1;
}else{
if(nums[mid]<target&&nums[right]>=target)
left=mid+1;
else
right=mid-1;
}
}
return false;
}
}