leedcode_153题——Find Minimum in Rotated Sorted Array(二分查找)
2015-06-11 09:39
337 查看
Find Minimum in Rotated Sorted Array
Total Accepted: 44929 Total Submissions: 135513My SubmissionsQuestion Solution
Suppose a sorted array is rotated at some pivot unknown to you beforehand.
(i.e.,
0 1 2 4 5 6 7might become
4 5 6 7 0 1 2).
Find the minimum element.
You may assume no duplicate exists in the array.
Hide Tags
Array Binary Search
Have you met this question in a real interview?
Yes
No
这道题采用二分查找的方法,将多种情况考虑进来就好了
#include<iostream> #include<vector> #include<math.h> using namespace std; int findMin(vector<int>& nums){ int a,b,c; a=0; c=nums.size()-1; b=(a+c)/2; int mins=nums[0]; while(1) { if((a+1)==c) { mins=min(mins,min(nums[a],nums[c])); break; } if(a==c) { mins=min(mins,nums[a]); break; } if(nums[a]<nums[b]&&nums[b]<nums[c]) { mins=min(mins,nums[a]); break; } if(nums[a]>nums[b]&&nums[b]>nums[c]) { mins=min(mins,nums[c]); break; } if(nums[a]<nums[b]&&nums[b]>nums[c]) { a=b; b=(a+c)/2; continue; } if(nums[a]>nums[b]&&nums[b]<nums[c]) { c=b; b=(a+c)/2; continue; } } return mins; } int main() { vector<int> vec; vec.push_back(2);vec.push_back(3);vec.push_back(4);vec.push_back(5);vec.push_back(1); cout<<findMin(vec)<<endl; }
相关文章推荐
- Dubbo zookeeper 初探
- CGI与fast-CGI的区别
- java中包的学习
- 在广州如何申请住房公积金贷款
- Color & Font - 使用颜色和字体
- 【VTK】vtkImagedata像素值的访问与修改
- 如何在Linux下使用Gitblit工具创建Git仓库服务
- Integer to Roman
- Torch7 15分钟学习文档 记录
- BAT批处理判断目录在%Path%中实现方法
- QT离线安装包下载地址
- Linux:fork进程创建
- Linux新手要了解的十个知识点
- Web App 向上滑动动态加载数据
- (转)create table #temptable 临时表 和 declare @bianliang table ()表变量
- MD5加密算法(java版)
- Shell脚本第一行
- (原创)《Android编程权威指南》学习笔记01-- Android应用初体验--003
- Web App 向上滑动动态加载数据 2015-06-11 09:36 20人阅读 评论(0) 收藏
- Centos如何挂载硬盘