牛客题霸 [ 旋转数组的最小数字] C++题解/答案

题目描述

把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。
输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。
NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。

题解:

两种方法:
第一种很简单,直接一遍循环找到最小值,这种方法大家都会
我们介绍第二种二分
二分就像查字典一样,先翻最中间一页,如果目标单词比我们所翻单词大,说明目标单词在右边,反之在左边,假如在右边,我们就进行一样的操作,继续中间翻,然后判断左右
二分答案,就是用二分的方法,在可能的答案区间里找出问题的答案,大多数情况下用于求解满足某种条件下的最大(小)值,前提是答案具有单调性,同时也可以理解为是一种倒推方法(先找答案在判断答案是否可行、有没有更优解)。

代码:

class Solution {public:int minNumberInRotateArray(vector<int> rotateArray) {int maxn=1e9;for(int i=0;i<rotateArray.size();i++){maxn=min(maxn,rotateArray[i]);}return maxn;}
};

二分法:

class Solution {public:int minNumberInRotateArray(vector<int> rotateArray) {if(rotateArray.empty())return 0;int low = 0;int hight = rotateArray.size() - 1;int mid = 0;while(low < hight){mid = low + (hight - low)/2;if(rotateArray[mid] >= rotateArray[hight])low =mid +1;elsehight = mid;}return rotateArray[hight];}
};

牛客题霸 [ 旋转数组的最小数字] C++题解/答案相关推荐

  1. 牛客题霸 [ 旋转数组] C++题解/答案

    牛客题霸 [ 旋转数组] C++题解/答案 题目描述 一个数组A中存有N(N&gt0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(M>=0)个位置,即将A中的数据由(A ...

  2. 牛客题霸 [三个数的最大乘积]C++题解/答案

    牛客题霸 [三个数的最大乘积]C++题解/答案 题目描述 给定一个无序数组,包含正数.负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1). 题解: 有人说 ...

  3. 牛客题霸 [ 换钱的最少货币数] C++题解/答案

    牛客题霸 [ 换钱的最少货币数] C++题解/答案 题目描述 给定数组arr,arr中所有的值都为正整数且不重复.每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个aim,代表要找的钱 ...

  4. 牛客题霸 单链表的选择排序 C++题解/答案

    牛客题霸 单链表的选择排序 C++题解/答案 题目描述 给定一个无序单链表,实现单链表的选择排序(按升序排序). 题解: 不可能手写排序,这辈子不可能手写排序.. 基础的链表操作,将链表内的数据存到v ...

  5. 牛客题霸 [将字符串转化为整数] C++题解/答案

    牛客题霸 [将字符串转化为整数] C++题解/答案 题目描述 实现函数 atoi .函数的功能为将字符串转化为整数 提示:仔细思考所有可能的输入情况.这个问题没有给出输入的限制,你需要自己考虑所有可能 ...

  6. 牛客题霸 [ 环形链表的约瑟夫问题] C++题解/答案

    牛客题霸 [ 环形链表的约瑟夫问题] C++题解/答案 题目描述 据说著名犹太历史学家 Josephus 有过以下故事:在罗马人占领乔塔帕特后,39 个犹太人与 Josephus 及他的朋友躲到一个洞 ...

  7. 牛客题霸 [输出二叉树的右视图] C++题解/答案

    牛客题霸 [输出二叉树的右视图] C++题解/答案 题目描述 请根据二叉树的前序遍历,中序遍历恢复二叉树,并打印出二叉树的右视图 题解: 分两个过程: 先用前序遍历+中序遍历恢复二叉树,这个应该都会. ...

  8. 牛客题霸 [链表中环的入口节点] C++题解/答案

    牛客题霸 [链表中环的入口节点] C++题解/答案 题目描述 对于一个给定的链表,返回环的入口节点,如果没有环,返回null 拓展: 你能给出不利用额外空间的解法么? 题解: 判断环有个很巧妙的方法, ...

  9. 牛客题霸 [ 求二叉树的层序遍历] C++题解/答案

    牛客题霸 [ 求二叉树的层序遍历] C++题解/答案 题目描述 给定一个二叉树,返回该二叉树层序遍历的结果,(从左到右,一层一层地遍历) 例如: 给定的二叉树是{3,9,20,#,#,15,7}, 该 ...

最新文章

  1. 商汤首付56亿!上海建成亚洲最大AI“发电厂”,万亿参数大模型训练无压力
  2. ASP.NET HTTP运行时组成详解(转贴)
  3. 一个程序员年近四十岁的一些胡思乱想
  4. Juniper Firewall多进单出配制实例
  5. Visual Studio 2010 调试 C 语言程序
  6. git 删除和复制远程分支
  7. nopcommerce插件深度剖析
  8. java 整型list_Java:集合,对列表(List)中的数据(整型、字符串、日期等)进行排序(正序、倒序)的方法;字符串按照整型排序的方法...
  9. P2P技术原理及应用
  10. matlab simulink电感,一文教你快速学会在matlab的simulink中调用C语言进行仿真
  11. 计算机装系统找不到硬盘分区,U盘重装系统找不到硬盘分区怎么办|安装系统找不到硬盘分区...
  12. Oracle 同义词详解(synonym)
  13. word打开文档很久很慢_打开Office文档很慢的解决办法
  14. 阿里 P6 到底应该具备哪些核心能力?
  15. 【dp】LGTB 玩THD
  16. 关于表单防重复提交一些东东
  17. python爬取淘宝商品做数据挖掘
  18. 中国各省、自治区的名字来历
  19. 北京PM2.5浓度回归分析
  20. 超低排放行业标准发布!

热门文章

  1. 这些肢体语言竟然是这个意思! | 今日最佳
  2. 除了中国,原来还有这么多国家采用十二生肖的啊~| 今日最佳
  3. 人生苦短,我用Python!
  4. AI人工智能资料分享来袭,还不快来!
  5. java语言程序设计第六章答案_Java语言程序设计(邵丽萍编著)第六章.doc
  6. 备赛脱脂经验分享_IEO国际经济学奥林匹克初选宏观备赛经验分享
  7. python extended,python list中的append 与 extended 的区别
  8. mysql控制台教程视频教程_mysql 控制台操作
  9. eclipse访问别人 mysql数据库_eclipse访问mysql数据库!
  10. java buffalo_随你怎么玩!Buffalo 网络硬盘新潮流