leetcode_c++: Find Minimum in Rotated Sorted Array II(154)
2016-06-11 23:47
513 查看
题目
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 a sorted array 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.
算法
O(logn)最坏O(N):全部都是一样的
class Solution { public: int findMin(vector<int>& nums) { int left=0,right=nums.size()-1; int mid, ans=nums[0]; while(left<=right){ mid=(left+right)/2; if(nums[left]<nums[right]){ ans=min(ans,nums[left]); left=mid+1; }else if(nums[right]>nums[left]){ ans=min(ans,nums[mid]); right=mid; }else{ ans=min(ans,nums[left]); ++left; } } return ans; } };
相关文章推荐
- c++:有武器的角色类
- C++ set容器迭代器
- Valid Sudoku
- leetcode_c++: Find Minimum in Rotated Sorted Array (153)
- 类型转换_C++中的int&
- 十分钟了解C++ Lambda表达式
- C++灵魂所在之---继承篇
- C++Primer 第4章笔记整理及运算符优先级表
- leetcode_c++: Maximum Product Subarray(152)
- C++ Virtual详解
- Count and Say
- c++动态绑定
- C++中的单例模式
- C++类的副本构造器之深复制(拷贝)与浅复制(拷贝)
- c++语言学习
- C/C++中进制的表示
- leetcode_c++: Longest Consecutive Sequence(128)
- L1-009. N个数求和
- 测试机器是否为 大端or小端
- 国际C混乱码大赛