这道题是从leetcode上面引用过来的,

153. Find Minimum in Rotated Sorted Array

代码如下:

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
class Solution
{
public:int findMin(vector<int> &num) {int left = 0, right = num.size() - 1;if (num[left] > num[right]){while (left != (right - 1)) {int mid = (left + right) / 2;if (num[left] < num[mid]) left = mid;//因为最小数一定在右侧部分数组的左侧。因为两个部分的数组的长度是位置的,所以不知道临界点//所以这个if就是用来判断临界点的,如果这里if判断成立,那么说明num[mid]和num[left]属于同一个数组,且该数组中必定不存在最小数,所以有left=mid//缩小范围的依据是整个数组的最小数一定存在于缩小后的数组中。else right = mid;}return min(num[left], num[right]);}return num[0];}
};int main()
{Solution s;vector<int>num = {7,8,9,1,2,3,4,5,6};int result = s.findMin(num);cout << "result=" << result << endl;cin.get();cin.get();
}

图解:

08_MinNumberInRotateArrary相关推荐

最新文章

  1. 成绩统计自动计算表格_电气计算太慢?62套自动计算EXCEL表格,一键下载秒出结果...
  2. python读取.edf文件
  3. Ubuntu install of ROS Melodic
  4. boost::math模块使用根查找的示例
  5. 【转】消息队列应用场景
  6. Leetcode--198. 打家劫舍
  7. 2021 河南 高考成绩查询,2021河南高考成绩查询入口
  8. 字符串匹配(二)——逆向思维 BMH
  9. 嵌入式开发之路,从51单片机开始
  10. 迅雷BT下载电影99.9%不动原地循环解决方案
  11. 1996.游戏中的弱角色的数量
  12. 输入网址到出现页面的过程
  13. 获取正在运行的termviewer id和密码
  14. 大数据学习入门看什么书?大数据新手怎么入门?
  15. Matlab读取显示图像顺序
  16. 学会宽容您的世界会很美丽
  17. ArcGIS Engine 10.5下构建Java程序—轻松入门
  18. 去掉mysql u0000_js对于\u0000的处理
  19. UiPath模拟浏览器登录qq邮箱并发送邮件方法与遇到的坑
  20. linux项目管理软件排名,好用的项目管理软件大排名

热门文章

  1. 终于理解了函数式技术
  2. 《Effective C#》读书笔记——条目10:使用可选参数减少方法重载的数量C#语言习惯...
  3. 图书馆可以借到的书目
  4. ES6新功能-模板字符串
  5. 为什么要用nodejs做中间层
  6. ClickHouse分布式集群部署
  7. 项目启动,数据库连接错误:SQLNonTransientConnectionException: Could not create connection to database server
  8. 【转】c++ http下载文件
  9. Unity 2018.3地形功能更新介绍
  10. node.js中对Event Loop事件循环的理解