Leetcode -- Find Minimum in Rotated Sorted Array II
2015-10-24 09:26
567 查看
Suppose a sorted array is rotated at some pivot unknown to you beforehand.
(i.e.,
Find the minimum element.
The array may contain duplicates.
分析:
这个题目中最小值可能出现在三个位置:
1. 最左边,这时数组没有出现乱序;
2. 左半段,但不是最左,这时左半部分是乱序的,右边是有序的,应查找左半段;
3. 右半段,这时左半段是有序的,查找右半段;
代码如下:
(i.e.,
0 1 2 4 5 6 7might become
4 5 6 7 0 1 2).
Find the minimum element.
The array may contain duplicates.
分析:
这个题目中最小值可能出现在三个位置:
1. 最左边,这时数组没有出现乱序;
2. 左半段,但不是最左,这时左半部分是乱序的,右边是有序的,应查找左半段;
3. 右半段,这时左半段是有序的,查找右半段;
代码如下:
class Solution { public: int findMin(vector<int>& nums) { int n= nums.size(); int low=0,high=n-1,mid; while(low<high) { mid = (low+high)/2; if(nums[low]<nums[high]) return nums[low]; if(nums[low]<nums[mid]) low = mid+1; else if(nums[low]>nums[mid]) high = mid; else low++; } return nums[low]; } };
相关文章推荐
- HTML语言中img标签的alt属性和title属性的作用于区别
- 动手动脑之Stringequals()方法,整理String类的Length(),charAt(),getChars(),replace(),toUpperCase(),toLowerCase(),trim(),toCharArray()使用说明
- MIUI7,Android版本5.0.2,一个程序发送自定义广播,另一个程序没有接收到
- [CodeForces 346A]Alice and Bob[数学]
- tcpdump+wireshark分析数据笔记(2)
- Android Studio下加入百度地图的使用(二)——定位服务
- 【 D3.js 高级系列 — 8.0 】 打标
- js运算符
- vector.erase()用法介绍及注意事项;
- android keepScreenOn
- 从HelloWorld和文档注释开始入门Java编程
- 黑马程序员_JavaIO流(二)
- 运营资源很少的时候,怎么运营自己的产品(完结)
- 运营资源很少的时候,怎么运营自己的产品(完结)
- DOM模型--简单的颜色块显示
- HashTable-HashMap(Android,Java最常见面试题)
- Eclipse启动时报错:No java virtual machine
- String与new String的区别
- lightoj 1154 - Penguins 【拆点建图后枚举汇点 满流判可行解】
- Telnet使用