【LeetCode】154. Find Minimum in Rotated Sorted Array II
来源:互联网 发布:php输出100以内的素数 编辑:程序博客网 时间:2024/05/16 13:56
【LeetCode】154. Find Minimum in Rotated Sorted Array II
【题目描述】
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.
【输入输出】
[4, 5, 6, 7, 0, 1, 2] -> 0
[1, 1, 1] ->1
【解题思路】
二分法:1. 当没有重复元素时,mid = (from + to) / 2, 若nums[mid] > nums[i] && nums[mid] < nums[j],说明nums依旧为升序,返回nums[0]2. 若nums[mid] > nums[j],则最小值位于[mid, to],i = mid;否则最小值位于[from, mid],j = mid;3. 当有重复元素时,可用unique函数去除重复元素,再使用本算法。
【代码】
// 题目153 代码class Solution {public: int findMin(vector& nums) { if(nums.size() == 1) return nums[0]; int i = 0, j = nums.size() - 1; while(true) { if(j - i == 1) return min(nums[i], nums[j]); int mid = (i + j) / 2; if(nums[mid] > nums[i] && nums[mid] < nums[j]) return nums[0]; else if(nums[mid] > nums[j]) i = mid; else j = mid; } }};
// 题目154class Solution {public: int findMin(vector& nums) { vector ::iterator ite = unique(nums.begin(), nums.end()); if(ite == nums.begin() + 1) return nums[0]; int i = 0, j = (ite == nums.end()) ? nums.size() - 1 : ite - nums.begin() - 1; while(true) { if(j - i == 1) return min(nums[i], nums[j]); int mid = (i + j) / 2; if(nums[mid] > nums[i] && nums[mid] < nums[j]) return nums[0]; else if(nums[mid] > nums[j]) i = mid; else j = mid; } }};
0 0
- leetCode -Array 154. Find Minimum in Rotated Sorted Array II
- [LeetCode]154.Find Minimum in Rotated Sorted Array II
- LeetCode 154. Find Minimum in Rotated Sorted Array II
- [leetcode] 154.Find Minimum in Rotated Sorted Array II
- [LeetCode]154. Find Minimum in Rotated Sorted Array II
- 【leetcode】154. Find Minimum in Rotated Sorted Array II
- leetcode.154. Find Minimum in Rotated Sorted Array II
- [leetcode] 154. Find Minimum in Rotated Sorted Array II
- leetcode:154. Find Minimum in Rotated Sorted Array II
- [LeetCode] 154. Find Minimum in Rotated Sorted Array II
- LeetCode 154. Find Minimum in Rotated Sorted Array II
- LeetCode 154. Find Minimum in Rotated Sorted Array II
- LeetCode 154. Find Minimum in Rotated Sorted Array II (Hard)
- LeetCode:154. Find Minimum in Rotated Sorted Array II
- leetcode 154. Find Minimum in Rotated Sorted Array II
- LeetCode 154. Find Minimum in Rotated Sorted Array II
- 【LeetCode】154. Find Minimum in Rotated Sorted Array II
- [leetcode]154. Find Minimum in Rotated Sorted Array II
- HRESULT:0x80070057 (E_INVALIDARG)异常(转载)
- 去掉Mybatis Generator生成的一堆 example
- 请求WebService出现"因 URL 意外地以 结束,请求格式无法识别"解决方法
- jquery动态加载js文件
- C++第五次上机--作业报告
- 【LeetCode】154. Find Minimum in Rotated Sorted Array II
- Nodejs 搭建https服务器(二)
- Iframe自适应高度
- UEditor添加一个普通按钮及其他使用注意事项
- 欢迎使用CSDN-markdown编辑器
- Windows7与Window2008 64位IIS7上面DCOM配置Excel、Word等
- hrbust 1864人类希望——kokoⅠ【数学+快速幂】
- 无刷新上传
- React Native (五):上下拉刷新加载