Search in Rotated Sorted Array II -- Leetcode
来源:互联网 发布:专业网络直播设备 编辑:程序博客网 时间:2024/06/06 01:18
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.
class Solution {public: bool search(int A[], int n, int target) { int hi,low; hi=n-1; low=0; while(low<=hi){ int mid=(low+hi)/2; if(target==A[mid] || target==A[hi] || target==A[low]) return true; if(A[low]<A[mid]){ if(A[low]<=target && target<A[mid]) hi=mid-1; else low=mid+1; } else if(A[low]>A[mid]){ if(A[mid]<target && target<=A[hi]) low=mid+1; else hi=mid-1; } else low++; } return false; }};
总结:
1. 此题需另外考虑duplicates的情况
2. 因为可能存在duplicate,当二分搜索中low<=mid时,不一定保证该区间是递增的,但low>mid时,仍可按照I时的做法做
3. 当low==mid时,说明存在duplicate,则要low++去消除duplicate
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
- poj1804(归并排序求逆序数)
- 第十七周项目1-体会函数参数传递
- 17周项目3--胖子伤不起
- 解决Android SDK Manager更新、下载速度慢
- C++ Primer(函数)
- Search in Rotated Sorted Array II -- Leetcode
- Git 常用命令
- 第17周【项目 6-学生成绩统计】(5)
- 【java】接口的应用的一个小例子
- 第17周项目3-胖子伤不起(结构体类型)
- 磁盘不能自动mount上来的solution(solution for nfs disks can't be mounted automatically)
- 一个标准的helloworld程序(java)
- 第17周项目4-生日相差几天
- android 正确添加外部jar包方法