您的位置:首页 > 其它

[LeetCode] 81. Search in Rotated Sorted Array II

2016-08-03 13:07 507 查看
思路:

因为有重复的, 所以如果nums[left]和nums[mid]相等的时候, 我们就得让left一格一格的向后跳找其中可能夹着的大数(target). 其余的可以参考http://blog.csdn.net/hiimdaosui/article/details/51966558.

bool search(vector<int>& nums, int target) {
int left = 0, right = nums.size() - 1;
while (left <= right) {
int mid = (left + right) >> 1;
if (nums[mid] == target)
return true;
if (nums[left] < nums[mid]) {
if (nums[left] <= target && target < nums[mid])
right = mid - 1;
else
left = mid + 1;
}
else if (nums[mid] < nums[left]) {
if (nums[mid] < target && target <= nums[right])
left = mid + 1;
else
right = mid - 1;
}
else left++;
}
return false;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode