81. Search in Rotated Sorted Array II
来源:互联网 发布:程敏政 知乎 编辑:程序博客网 时间:2024/06/03 10:18
Follow up for "Search in Rotated Sorted Array":
What if duplicates are allowed?Would this affect the run-time complexity? How and why?
Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand.
(i.e., 0 1 2 4 5 6 7
might become 4 5 6 7 0 1 2
).
Write a function to determine if a given target is in the array.
The array may contain duplicates.
class Solution {
public:bool search(vector<int>& nums, int target) {
int h=nums.size()-1,l=0;
if(h==-1)return false;
while(l<h){
int m=(l+h)/2;
if(nums[m]==target)
return true;
else if(nums[m]<nums[h]){
if(nums[m]<target&&target<=nums[h])
l=m+1;
else
h=m;
}
else if(nums[m]>nums[h]){
if(target<nums[m]&&target>=nums[l])
// h=m-1;
//else
// l=m;
//超时,原因:当nums=[3,1]时,l恒等于0,进入死循环,由于m=(l+h)/2向下取整,故而一定要 l增加,而不是h减少
h=m;
else
l=m+1;
}
else
h--;
}
return nums[l]==target?true:false;
}
};
阅读全文
0 0
- 81.Search in Rotated Sorted Array II
- 81. Search in Rotated Sorted Array II
- 81. Search in Rotated Sorted Array II
- 81. Search in Rotated Sorted Array II
- 81. Search in Rotated Sorted Array II
- 81. Search in Rotated Sorted Array II
- 81. Search in Rotated Sorted Array II
- 81. Search in Rotated Sorted Array II
- 81. Search in Rotated Sorted Array II
- 81. Search in Rotated Sorted Array II
- 81. Search in Rotated Sorted Array II
- 81. Search in Rotated Sorted Array II
- 81. Search in Rotated Sorted Array II
- 81. Search in Rotated Sorted Array II
- 81. Search in Rotated Sorted Array II
- 81. Search in Rotated Sorted Array II
- 81. Search in Rotated Sorted Array II
- 81. Search in Rotated Sorted Array II
- Windows FLASK环境
- 运行react native
- Counting Divisors
- 【记忆化搜索】 HDU-1978 How many ways
- HDU Counting Divisors
- 81. Search in Rotated Sorted Array II
- 搜集一些有趣的排序算法,持续更新
- HDU6069(素数筛选+思维)
- HDU 6075 Questionnaire
- wait(1000)与sleep(1000)的区别
- 拦截导弹noip1999
- 树莓派中用python检测连续脉冲
- 设计模式5——建造者模式
- PHP·保存会话数据的两种技术之一·Cookie·实例