leetNode No154. Find Minimum in Rotated Sorted Array II
来源:互联网 发布:bershka 知乎 编辑:程序博客网 时间:2024/06/01 20:50
Question
Follow up for “Find Minimum in Rotated Sorted Array”:
What if duplicates are allowed?
Would this affect the run-time complexity? How and why?
Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand.
(i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2).
Find the minimum element.
The array may contain duplicates.
Algorithm
见代码注释
Accepted Code
class Solution {public: int findMin(vector<int>& nums) { int left=0,right=nums.size()-1,mid=0; while(left < right){ mid=(right-left)/2+left; if(nums[left] < nums[right]) //顺序 return nums[left]; else if(nums[left] > nums[mid]) //左边无序,最小值在左边,最小值可能是nums[mid],因为nums[mid]<nums[left] right=mid; else if(nums[right] < nums[mid]) //右边无序,最小值在右边,最小值不可能是nums[mid],因为nums[mid]>nums[right] left=mid+1; else //nums[mid]<=nums[left]&&nums[mid]<=nums[right]&&nums[left]<=nums[right] =>> nums[left]=nums[mid]=nums[right] //此时已经不能通过二分搜索来查找了 比如 222222122222,只能遍历 { right--; } } return nums[left]; }};
阅读全文
0 0
- leetNode No154. Find Minimum in Rotated Sorted Array II
- Find Minimum in Rotated Sorted Array II
- Find Minimum in Rotated Sorted Array II
- Find Minimum in Rotated Sorted Array II
- Find Minimum in Rotated Sorted Array II
- Find Minimum in Rotated Sorted Array II
- Find Minimum in Rotated Sorted Array II
- Find Minimum in Rotated Sorted Array II
- Find Minimum in Rotated Sorted Array II
- Find Minimum in Rotated Sorted Array II
- Find Minimum in Rotated Sorted Array II
- Find Minimum in Rotated Sorted Array II
- Find Minimum in Rotated Sorted Array II
- Find Minimum in Rotated Sorted Array II
- Find Minimum in Rotated Sorted Array II
- Find Minimum in Rotated Sorted Array II
- Find Minimum in Rotated Sorted Array II
- Find Minimum in Rotated Sorted Array II
- Integer类型与int的==比较
- 《Unix环境高级编程》第二版
- Inno打包
- 运用SDL库设计窗口
- 记录做pindan时的一些问题
- leetNode No154. Find Minimum in Rotated Sorted Array II
- [LeetCode] Predict the Winner 预测得分最高的赢家
- chmod
- 【Redis学习】:redis补充——redis使用场景、redis.conf配置文件和启动多个redis实例
- Scala学习笔记
- Matlab随笔之插值与拟合(下)
- Java实现最电话号码的简单加密源码
- Java日志,需要知道的几件事(commons-logging,log4j,slf4j,logback)
- 【Redis学习】:redis特性——多数据库、服务器命令、消息订阅与发布和事务