154. Find Minimum in Rotated Sorted Array II
来源:互联网 发布:什么是淘宝直通车? 编辑:程序博客网 时间:2024/06/03 20:34
这道题是在旋转过的有序数组中寻找最小值的扩展,不同的是有重复的数字。
上一个题寻找最小,利用二分查找的方法。比较nums[mid]和nums[end],如果mid位置比较大,说明最小的数在mid~end。如果mid位置比较小,说明最小的数在start~mid。
这道题应该先自己写出几个例子来看一下,有重复数字会出现什么现象。例如:
222222220112还有222022222222.从这两个例子可以看出,有可能造成nums[mid]等于nums[end]的现象,这样没办法知道最小值是在前半部分还是后半部分。这时候要两边都计算一下,取最小就可以了。
class Solution {public: int findMin(vector<int>& nums) { return helper(nums, 0, nums.size()-1); } int helper(vector<int>& nums, int start, int end){ if(end - start <= 1) return min(nums[start], nums[end]); int mid = (start + end)/2; if(nums[mid] < nums[end]) return helper(nums, start, mid); else if(nums[mid] > nums[end]) return helper(nums, mid, end); else{ return min(helper(nums, start, mid), helper(nums, mid, end)); } }};
阅读全文
0 0
- 154. Find Minimum in Rotated Sorted Array II & 153. Find Minimum in Rotated Sorted Array
- 153. Find Minimum in Rotated Sorted Array && 154. Find Minimum in Rotated Sorted Array II
- leetCode -Array 154. 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
- 成绩转换
- Map和multimap容器
- 例题摘要
- JAVA套接字编程---UDP
- 异常 数组打印
- 154. Find Minimum in Rotated Sorted Array II
- 让安卓模拟器访问本地服务器
- python3里面的range()函数
- 02-面向对象(包-包之间访问-protected).1 2 3 03-面向对象(包-导入import)
- 归并算法的实现
- 深度学习必备:通过VNC连接ubuntu(linux)工作站
- 机器学习实战笔记-K近邻算法2(改进约会网站的配对效果)
- poj1753Flip Game【刷题计划】
- Course 4-Convolutional Neural Networks--Week 2