/**81. Search in Rotated Sorted Array II
* @param nums
* @param target
* @return 接上题,数组中有重复数字
*/
public boolean search2(int[] nums, int target) {
int s = 0, e = nums.length-1;
while(s <= e) {
int m = (s+e)/2;
if (nums[m] == target) {
return true;
} else if (nums[m] < nums[e]) {//后,有序
if (target > nums[m] && target <= nums[e]) {
s = m+1;
} else {
e = m-1;
}
}else if (nums[m] > nums[e]){//前,有序
if (target < nums[m] && target >= nums[s]) {
e = m-1;
} else {
s = m+1;
}
}else {//中间元素等于末尾元素
e--;
}
}
return false;
}
[LeetCode] 81. Search in Rotated Sorted Array II java
最新推荐文章于 2025-05-20 17:47:20 发布