LeetCode --- 81. Search in Rotated Sorted Array II
来源:互联网 发布:网络晒长腿大赛 编辑:程序博客网 时间:2024/06/05 19:57
题目链接:Search in Rotated Sorted Array II
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的基础上允许数组中出现重复元素。
这道题是Search in Rotated Sorted Array的扩展,允许数组中出现重复元素。
思路类似,只不过当A[l] == A[m]的时候,无法判断左侧是否旋转,因此需要遍历l到m之间的元素进行查找,这样,最差的时间复杂度为O(n)。
时间复杂度:O(logn)
空间复杂度:O(1)
1 class Solution 2 { 3 public: 4 bool search(int A[], int n, int target) 5 { 6 int l = 0, r = n - 1; 7 while(l <= r) 8 { 9 int m = (l + r) / 2;10 if(A[m] == target)11 return true;12 if(A[l] == A[m])13 {14 for(int i = l; i < m; ++ i)15 if(A[i] == target)16 return true;17 l = m + 1;18 }19 else if(A[l] < A[m])20 {21 if(A[l] <= target && target < A[m])22 r = m - 1;23 else24 l = m + 1;25 }26 else27 {28 if(A[m] < target && target <= A[r])29 l = m + 1;30 else31 r = m - 1;32 }33 }34 35 return false;36 }37 };
转载请说明出处:LeetCode --- 81. Search in Rotated Sorted Array II
0 0
- leetcode题解-33. Search in Rotated Sorted Array && 81. Search in Rotated Sorted Array II
- LeetCode 33. Search in Rotated Sorted Array && 81. 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
- 编译OCI驱动
- 常用网页使用js技巧收集(200多个)经典
- 用反射通过字符串获取窗体
- boost_1.47在VS2010下的安装
- android开发中积累的小知识(转)
- LeetCode --- 81. Search in Rotated Sorted Array II
- 如何解决存储过程中关联临时表时快时慢的情况
- malloc、calloc、realloc,alloca 的区别
- ctags和vim的安装和使用详解
- log4j设置
- Hadoop 2.6.0 Configuration源码分析
- 从驱动层将USB3.0转换为USB2.0
- 【.Net码农】WPF组件开发之组件的基类
- selenium IDE下载