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


//折半查找–每次折半,时间复杂度logn

#include<iostream>
#include<vector>using namespace std;int minNumberInRotateArray(vector<int> Array)
{int mysize=Array.size();if(Array.size()==0)return 0;int low=0;int high=Array.size()-1;int mid=(low+high)/2;while(low<high){if(Array[mid]==Array[low])low=low+1;else if(Array[mid]>Array[low])low=mid;elsehigh=mid;mid=(low+high)/2;}return Array[low];
}int main()
{int arr[]={6501,6828,6963,7036,7422,7674,8146,8468,8704,8717,9170,9359,9719,9895,
9896,9913,9962,154,293,334,492,1323,1479,1539,1727,1870,1943,2383,2392,2996,3282,3812,3903,4465,4605,4665,4772,4828,5142,5437,5448,5668,5706,5725,6300,6335};int num=sizeof(arr)/sizeof(int);vector<int> vec;for(int i=0;i<=num-1;i++){vec.push_back(arr[i]);}for(int i=0;i<=num-1;i++){cout<<vec[i]<<" ";}cout<<endl;int a=minNumberInRotateArray(vec);cout<<"Min="<<a<<endl;system("pause");return 0;
}

运行结果:

6501 6828 6963 7036 7422 7674 8146 8468 8704 8717 9170 9359 9719 9895 9896 9913 9962 154 293 334 492 1323 1479 1539 1727 1870 1943 2383 2392 2996 3282 3812 3903 4465 4605 4665 4772 4828 5142 5437 5448 5668 5706 5725 6300 6335
Min=154
请按任意键继续. . .

旋转数组的最小数字(牛客网C++代码)相关推荐

  1. 旋转数组的最小数 php 牛客网_一文搞定—移掉K个数字amp;amp;旋转数组amp;amp;全排列...

    给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小.注意:num 的长度小于 10002 且 ≥ k. num 不会包含任何前导零. (1)本不该,单独开一章节来讲 ...

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

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

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

    牛客题霸 [ 旋转数组的最小数字] C++题解/答案 题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素. NOT ...

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

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

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

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

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

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

  7. 《LeetCode力扣练习》剑指 Offer 11. 旋转数组的最小数字 Java

    <LeetCode力扣练习>剑指 Offer 11. 旋转数组的最小数字 Java 一.资源 题目: 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 给你一个可能存在 ...

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

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

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

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

  10. 剑指offer 11. 旋转数组的最小数字(很详细!)

    剑指offer 11. 旋转数组的最小数字 题目 解题思路 代码 题目 解题思路 一开始,我们就能直接想到,数组找最小值,那么不轻轻松松直接遍历一遍,用一个变量记录最小值,然后直接返回不就完事了? 但 ...

最新文章

  1. mysql 分布式 安装_mysql分布式集群安装-阿里云开发者社区
  2. laydate.render报错:日期格式不合法
  3. Android 显示全文折叠控件
  4. .NET Core和.NET Standard有什么不同
  5. Java中使用Map and Fold进行功能性编程
  6. 2015年第46周五
  7. python简明教程_06
  8. DOSBox的安装及使用
  9. 【Kaggle】Titanic - Machine Learning from Disaster
  10. Excel中文拼音首字母缩写函数
  11. BAT等大厂年薪30W+面试清单:JVM\MySQL\设计模式\分布式\微服务
  12. 基于学习的方法决定在哪些分支节点上运行heuristic算法
  13. 有了800件T恤测量数据,能选出最合身的尺寸吗?
  14. 切换IP及DNS上网一键脚本设置
  15. 计算机中常用标点符号的英文单词
  16. EfficientNET_V1
  17. dtop: 一个基于减法的系统占用率及系统性能测量工具
  18. 转:据说什么都能查到网址大全
  19. Ai带你玩股票项目(V1.0)内测说明
  20. LaTex科学论文写作入门

热门文章

  1. Rulo扫地机器人app_扫地机器人扫不干净 为什么我还推荐大家买?
  2. 八皇后问题-python描述
  3. mysql水平分表实践记录_MYSQL 分表实践
  4. threejs加载模型挤压变形_浙大《Nature》子刊新思路:晶界调控金属纳米结构循环变形行为!...
  5. table里面用三目_三个方法快速找到SAP后台Table
  6. 声音模仿_澳洲这种鸟堪称“超级声音模仿秀”,比八哥还牛,却正遭山火毁灭...
  7. JavaWeb:下载文件
  8. Node:根据开发环境配置axios默认路径
  9. mysql中的编号怎么自动加_MySQL中实现ID编号自动增加的方法
  10. 推荐系统概述——《ML算法原理和实践》学习笔记