0%

81. 搜索旋转排序数组 II

81. 搜索旋转排序数组 II

吐了
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
class Solution {
public:
bool search(vector<int>& nums, int target) {
int lo = 0, hi = nums.size() - 1;
while(lo <= hi)
{
int mid = lo + (hi - lo) / 2;
if(nums[mid] == target)
return true;
if(nums[mid] == nums[lo]) // 缩小区间,不然无法确定mid在左还是右
{
++lo;
}else if(nums[mid] > nums[lo])
{
if(target >= nums[lo] && target < nums[mid])
hi = mid - 1;
else
lo = mid + 1;
}else
{
if(target < nums[lo] && target > nums[mid])
lo = mid + 1;
else
hi = mid - 1;
}
}
return false;
}
};