题目描述:
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。

解题思路:

方法一:旋转数组是将若干个元素搬到了数组的末尾,所以可以从最后向前查找,如果达到某一点的数比它的下一个数小了,那说明这个数就是这个数组中最小的(因为这个数组原本是非降序排列的,即使将若干个元素移到了后面,哪也是有数按需的,前面升序,后面降序)。

复杂度:O(n)

方法二:先对整个数组重新排序,再取第一个元素,即为最小值。

复杂度:O(n*logn)

C++实现代码:

方法一:

int minNumberInRotateArray(vector<int> rotateArray) {if(rotateArray.size()==0){return 0;}int minNumber=rotateArray[rotateArray.size()-1];for(int i=rotateArray.size()-2;i>0;i--){if(minNumber>=rotateArray[i]){minNumber=rotateArray[i];}else{break;}}return minNumber;}

方法二:

int minNumberInRotateArray(vector<int> rotateArray) {       sort(rotateArray.begin(),rotateArray.end());return rotateArray[0];}

查找和排序-——旋转数组的最小数字相关推荐

  1. 剑指Offer #06 旋转数组的最小数字(二分查找)| 图文详解

    题目来源:牛客网-剑指Offer专题 题目地址:旋转数组的最小数字 题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小 ...

  2. 《剑指offer》--二维数组中的查找、从头到尾打印链表、重建二叉树、旋转数组的最小数字

    一.二维数值中的查找: 1.题目: 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数 ...

  3. 剑指offer java -查找旋转数组的最小数字

    /** * Created by wqc on 2017/7/18. * 查找旋转数组的最小数字 * 把一个数组最开始的若干个元素搬到数组的末尾,称为数组的旋转 * 输入一个递增排序的数组的一个旋转, ...

  4. 旋转数组的最小数字查找

    旋转数组的最小数字查找 怀疑 题目 分析 代码 结果 总结 怀疑 什么是数组的旋转? 输入的旋转数组有什么特性? 题目 把一个数组最开始的若干个元素搬到数组的末尾,我们称为数组的旋转.输入一个递增排序 ...

  5. 剑指offer:面试题11. 旋转数组的最小数字

    题目:旋转数组的最小数字 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素.例如,数组 [3,4,5,1,2] 为 [1,2, ...

  6. 剑指offer_第6题_旋转数组的最小数字

    题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋 ...

  7. 剑指 Offer 11. 旋转数组的最小数字 简单

    剑指 Offer 11. 旋转数组的最小数字 题目 解题思路 方法(一)直接遍历法 方法(二)二分查找法 题目 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个递增排序的数组 ...

  8. LeetCode-剑指 Offer 11. 旋转数组的最小数字

    剑指 Offer 11. 旋转数组的最小数字 思路一:先排序,返回第一个数组值 class Solution {public:int minArray(vector<int>& n ...

  9. 算法练习day20——190411(重建二叉树、斐波那契数列、跳台阶、矩形覆盖、变态跳台阶、旋转数组的最小数字、矩阵中的路径)

    1.重建二叉树 根据二叉树的前序遍历和中序遍历的结果,重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字. preorder = [3,9,20,15,7].inorder = [9 ...

最新文章

  1. 赠书:“替代Linux”?!全球技术海啸来临!
  2. 利用libevent 和线程池实现高并发服务器的设计
  3. 在nginx.conf中配置https
  4. 找不到编译动态表达式所需的一种或多种类型。是否缺少对 Microsoft.CSharp.dll 和 System.Core.dll 的引用?...
  5. 只要200行JavaScript代码,就能把特斯拉汽车带到您身边
  6. python将一行作为字段_Python 变量代入,指定某一行截取输出字段怎么办?
  7. 开源GIS(十五)——openlayers通过geoserver中WFS删除要素
  8. 标签生成html怎么转换,如何进行HTML到XML转换以生成封闭标签?
  9. 《图解设计模式》读书笔记
  10. WIN10 企业版 LTSC 激活
  11. AI上推荐 之 FM和FFM(九九归一)
  12. 如何用软文打造口碑营销?
  13. SAP PS 第15节 预算管理
  14. 最小均方算法二分类(基于双月数据集)
  15. 学生-课程数据库中的Student表中的学号属性为什么用英文Sno表示?
  16. 红到发紫的人工智能,2019运势如何?
  17. 输入空间、输出空间、特征空间与假设空间的区分
  18. 【Vue3】学习笔记-reactive响应式
  19. 相亲其实没有那么难!
  20. 2023年美赛数学模型与思路 美国大学生数学建模竞赛

热门文章

  1. 阿里云服务器以及CDN支持IPV6的方法
  2. win8计算机不显示视频图标,如何解决Win8.1桌面图标显示不正常的问题?
  3. 毛玻璃,磨砂玻璃材质,shader笔记
  4. 国家对应下拉列表 相应的 js特效
  5. Anti_TexturePacker工具
  6. 相关系数之皮尔逊pearson相关系数和斯皮尔曼spearman等级相关系数(评价线性关系的相关系数)(第一部分)
  7. 八种可以简单判断否属于过敏体质的表现,符合四条就是了
  8. P2698 [USACO12MAR]Flowerpot S
  9. php图床_PHP EasyImage 简单图床源码
  10. ipython版本_维护ipython noteb的两个版本