[leetcode] Search in Rotated Sorted Array II
来源:互联网 发布:淘宝如何修改店铺名称 编辑:程序博客网 时间:2024/06/08 04:26
Follow up for "Search in Rotated Sorted Array":
What if duplicates are allowed?
Would this affect the run-time complexity? How and why?
Write a function to determine if a given target is in the array.
思路:出现重复的时候,因为重复的次数我们无从得知,原数组旋转折叠的位置我们也无从得知,所以最后折叠后的状态我们也就无从得知,所以我们无法去按着Search in Rotated Sorted Array的判断标准去判断哪部分有序,设想一种情形1,1, 1,2,1,1,1,恰好左中右都是1,这时我们 ++左下标,--右下标,为什么这样我们不会将这个值跳过呢? 就是说,凭什么我们说除却这两个位置,在两者之间就一定还存在这个值?当然能,因为我们进入的条件是左中右相等,所以我们可以把首尾的值都略过,进行下一次循环。
参考链接:http://www.2cto.com/kf/201401/271561.html
代码:
class Solution {public: bool search(int A[], int n, int target) { int low=0,high=n-1; while(low<=high){ int mid=(low+high)/2; if(A[mid]==target) return true; if(A[low]==A[mid] && A[mid]==A[high]){ ++low; --high; } else if(A[low]<=A[mid]){ if(target<A[mid] && target>=A[low]){ high=mid-1; }else{ low=mid+1; } } else{ if(target>A[mid] && target<=A[high]){ low=mid+1; } else{ high=mid-1; } } } return false; }};
0 0
- LeetCode: Search in Rotated Sorted Array II
- LeetCode Search in Rotated Sorted Array II
- LeetCode : Search in Rotated Sorted Array II
- [LeetCode] Search in Rotated Sorted Array II
- [Leetcode] Search in Rotated Sorted Array II
- [leetcode] Search in Rotated Sorted Array II
- [LeetCode]Search in Rotated Sorted Array II
- [leetcode] Search in Rotated Sorted Array II
- LeetCode-Search in Rotated Sorted Array II
- LeetCode - Search in Rotated Sorted Array II
- 【Leetcode】Search in Rotated Sorted Array II
- Leetcode: Search in Rotated Sorted Array II
- 【leetcode】Search in Rotated Sorted Array II
- leetcode Search in Rotated Sorted Array II
- Leetcode: Search in Rotated Sorted Array II
- [LeetCode] Search in Rotated Sorted Array II
- LeetCode | Search in Rotated Sorted Array II
- LeetCode Search in Rotated Sorted Array II
- MATLAB 声卡连续信号采集
- neHe OpenGL lession 5
- CentOS6.5安装MRBS
- 将spinbox重写虚函数,支持16进制微调框
- iOS实现打电话功能
- [leetcode] Search in Rotated Sorted Array II
- C++11新标准之三:nullptr
- 1229 数字游戏
- java基本数据类型初始值(默认值) ,在设计数据库时造成的问题
- sqlserver2008添加删除字段
- unix信号转载
- 译文:前端性能的重要性 The Importance of Frontend Performance
- MATLAB 信号分析FFT STFT
- Java关键字系列(class,package,import)