LeetCode--search-in-rotated-sorted-array-ii
2018-01-11 15:19
459 查看
题目描述
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.
/** 旋转数组中寻找target,主要考虑左、右边界与中间元素相等
3 1 2 3 3 3 3
3 3 3 3 1 2 3 这种情况无法排除掉保留那一半数据,只能去掉首尾元素缩进,退化到O(n)复杂度
**/
class Solution {
public:
bool search(int A[], int n, int target)
{
int low = 0,high = n-1;
while(low<=high)
{
int middle = (low+high)>>1;
if(A[middle] == target)
return true;
if(A[middle]==A[high] && A[middle]==A[low]) /// 比unique查找多了两句
{
low++;
high--;
}
else if(A[low] <= A[middle]) /// left side is sorted
{
if(A[low]<=target && target<A[middle])
high = middle-1;
else
low = middle+1;
}
else /// right side id sorted
{
if(A[middle]<target && target<=A[high])
low = middle+1;
else
high = middle-1;
}
}
return false;
}
};
相关文章推荐
- LeetCode之Search in Rotated Sorted Array II ()C++
- [LeetCode] Search in Rotated Sorted Array II
- LeetCode_Search in Rotated Sorted Array II
- [leetcode]【数组】81. Search in Rotated Sorted Array II
- Leetcode刷题记—— 81. Search in Rotated Sorted Array II(在翻转数组中查找2)
- 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
- 89_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 I II
- 【Leetcode】Search in Rotated Sorted Array II
- [leetcode] Search in Rotated Sorted Array II
- [Leetcode] Search in Rotated Sorted Array II
- leetcode 刷题之路 35 Search in Rotated Sorted Array II (旋转排序数组查找终极版)
- [leetcode] Search in Rotated Sorted Array II
- LeetCode 81. Search in Rotated Sorted Array II
- Search in Rotated Sorted Array II leetcode