Steward
分享是一種喜悅、更是一種幸福
程式語言 - LeetCode - C++ - 81. Search in Rotated Sorted Array II
題目:

解答:
class Solution {
public:
bool search(vector<int>& nums, int target) {
int l = 0;
int r = nums.size() - 1;
while (l <= r) {
int m = l + ((r - l) >> 1);
if (nums[m] == target) {
return true;
}
if (nums[l] == nums[m] && nums[r] == nums[m]) {
l++;
r--;
}
else if (nums[l] <= nums[m]) {
if (nums[l] <= target && target < nums[m]) {
r = m - 1;
}
else {
l = m + 1;
}
}
else {
if (nums[m] < target && target <= nums[r]) {
l = m + 1;
}
else {
r = m - 1;
}
}
}
return false;
}
};