81. Search in Rotated Sorted Array II
2016-05-17 09:44
274 查看
题目:
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题目类似。如果提供给的数组中允许存在重复元素该如何解决?
重复元素会不会影响运行时间复杂度?为什么?怎样影响的?
写一个功能函数去检测。
思路:
允许重复元素,则上一题中如果A[m]>=A[l], 那么[l,m] 为递增序列的假设就不能成立了,比如[1,3,1,1,1]。
如果A[m]>=A[l] 不能确定递增,那就把它拆分成两个条件:
• 若A[m]>A[l],则区间[l,m] 一定递增
• 若A[m]==A[l] 确定不了,那就l++,往下看一步即可。
转载地址:LeetCode 题解 https://github.com/soulmachine/leetcode
代码:8ms
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题目类似。如果提供给的数组中允许存在重复元素该如何解决?
重复元素会不会影响运行时间复杂度?为什么?怎样影响的?
写一个功能函数去检测。
思路:
允许重复元素,则上一题中如果A[m]>=A[l], 那么[l,m] 为递增序列的假设就不能成立了,比如[1,3,1,1,1]。
如果A[m]>=A[l] 不能确定递增,那就把它拆分成两个条件:
• 若A[m]>A[l],则区间[l,m] 一定递增
• 若A[m]==A[l] 确定不了,那就l++,往下看一步即可。
转载地址:LeetCode 题解 https://github.com/soulmachine/leetcode
代码:8ms
class Solution { public: bool search(vector<int>& nums, int target) { int first = 0; int last = nums.size(); while(first!=last){ const int mid = first + (last-first)/2; if(nums[mid]==target){ return true; } if(nums[first]<nums[mid]){ if(nums[first]<=target && target<nums[mid]){ last = mid; }else{ first = mid+1; } }else if(nums[first]>nums[mid]){ if(nums[mid]<target && target<=nums[last-1]){ first = mid+1; }else{ last = mid; } }else{ first++; } } return false; } };
相关文章推荐
- 支付宝架构师:从工程师到架构师的成长之路
- JSP过滤器
- Installation error: INSTALL_FAILED_UPDATE_INCOMPATIBLE
- 诗歌二
- 怎么学好,使用好shell
- UI控件笔记(一):UI之UIView的属性
- 【bzoj1604】【Usaco2008 Open】Cow Neighborhoods (set+曼哈顿距离性质+并查集)奶牛的邻居
- iOS类型里面添加属性
- android 自定义View
- Logcat中报内存泄漏MemoryLeak的一次分析
- 【bzoj 1604】: [Usaco2008 Open]Cow Neighborhoods 奶牛的邻居 set+并查集
- 如何利用Promises编写更优雅的JavaScript代码
- Android 上下文菜单(长摁弹出)
- Lucene学习总结之一:全文检索的基本原理
- 解决div被embed,object覆盖问题
- 类型:.net;问题:asp.net window验证;结果:细说ASP.NET Windows身份认证
- 算法课笔记系列(七)—— 平摊分析Amortized Analysis
- mysql基础命令
- gsoap使用总结
- 如何用httpie更高效的调试接口