Closed congr closed 5 years ago
Follow-up question to Search in Rotated Sorted Array
class Solution {
public boolean search(int[] nums, int target) {
if (nums.length == 0) return false;
int s = 0, e = nums.length-1;
while(s <= e) {
int m = (s+e) / 2;
if (nums[m] == target) return true;
if (nums[s] == nums[m] && nums[m] == nums[e]) { // !!!!!!
s++; e--;
}
else if (nums[s] <= nums[m]) {
if (nums[s] <= target && target <= nums[m]) e = m;
else s = m+1;
}
else if (nums[m] <= nums[e]) {
if (nums[m] <= target && target <= nums[e]) s = m;
else e = m-1;
}
}
return false; // not found
}
}
https://leetcode.com/problems/search-in-rotated-sorted-array-ii/