https://leetcode-cn.com/problems/search-in-rotated-sorted-array-ii/ 数组、二分查找
二分查找
function search(nums: number[], target: number): boolean {
let l = 0;
let r = nums.length - 1;
while (l <= r) {
let m = (l + r) >> 1;
if (nums[m] === target) return true;
// 这里是去重
if (nums[m] === nums[l] && nums[m] === nums[r]) {
l++;
r--;
} else if (nums[l] > nums[m]) {
if (target > nums[m] && target <= nums[r]) {
l = m + 1;
} else {
r = m - 1;
}
} else {
if (target >= nums[l] && target < nums[m]) {
r = m - 1;
} else {
l = m + 1;
}
}
}
return false;
};