LeetCode(154) Find Minimum in Rotated Sorted Array II
来源:互联网 发布:初学c语言看什么书好 编辑:程序博客网 时间:2024/04/27 19:16
题目
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.
Subscribe to see which companies asked this question
分析
在含有重复元素的旋转有序序列中查找最小元素。
与上一题类似, LeetCode(153) Find Minimum in Rotated Sorted Array 153题中的旋转有序数组不包含重复元素,而此题允许重复元素,增加了一点难度。
我想题目重点考察的还是沿用二分查找的方法解决,思路参考。
AC代码
class Solution {public: //方法一:使用stl库函数 int findMin1(vector<int>& nums) { if (nums.empty()) return 0; vector<int>::iterator iter = min_element(nums.begin(), nums.end()); return *iter; } //方法二:整个数列除一处为最大值到最小值的跳转外,为两部分的递增 int findMin2(vector<int>& nums) { if (nums.empty()) return 0; if (nums.size() == 1) return nums[0]; for (size_t i = 1; i < nums.size(); ++i) { if (nums[i - 1] > nums[i]) return nums[i]; }//for //没有找到跳转元素,则序列无旋转 return nums[0]; } int findMin(vector<int> &nums) { if (nums.empty()) return 0; else if (nums.size() == 1) return nums[0]; else{ int lhs = 0, rhs = nums.size() - 1; while (lhs < rhs && nums[lhs] >= nums[rhs]) { int mid = (lhs + rhs) / 2; if (nums[lhs] > nums[mid]) rhs = mid; else if (nums[lhs] == nums[mid]) ++lhs; else lhs = mid + 1; }//while return nums[lhs]; } }};
GitHub测试程序源码
0 0
- 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, Hard] 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】No.154 Find Minimum in Rotated Sorted Array II
- 154 Find Minimum in Rotated Sorted Array II [Leetcode]
- 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(C++)
- LeetCode 154---Find Minimum in Rotated Sorted Array II
- 修改自:收录的一篇很详细很全的OGG配置文档
- NGUI的图文混排
- Quartz 2D学习(一)简单绘制图形
- IOS开发笔记35-多控制器管理(1)
- Python 类小结
- LeetCode(154) Find Minimum in Rotated Sorted Array II
- Lua中view函数的用法
- MAC 搭建腾讯云(centOS) apache+php+mysql 持续更新...
- Unity Internal Compiler Error 报错拾遗
- 电池厂家
- 怎么在Eclipse上运行静态网页
- 游戏开发Camera之Cinematic Camera-深度
- webview隐藏滚动条
- leetcode之Word Pattern