面试题8_旋转数组的最小值
来源:互联网 发布:淘宝商城裂帛 编辑:程序博客网 时间:2024/05/17 20:34
面试题8_旋转数组的最小值
//面试题8:旋转数组中的最小数//给定一个旋转数组,求出其中的最小值。//旋转数组的定义:把一个数组最开始的若干个元素搬到该数组的末尾。//例如:输入一个递增排序的数组{1,2,3,4,5}的一个旋转数组是{3,4,5,1,2},//其中最小数字是1。#include<iostream>#include<vector>using namespace std;bool g_InputInvalid=false;class Solution{public:int MinOrder(int num[], int p1, int p2){int result=num[p1];for(int i=p1+1; i<=p2; ++i){if(num[i]<result)result=num[i];}return result;}int FindMin(int num[], int length){if(num==nullptr || length<=0){g_InputInvalid=true;return 0;}//使用二分查找int p1=0;int p2=length-1;int indexmin=p1;while(num[p1]>=num[p2]){if(p2-p1 == 1){indexmin=p2;break;}indexmin=(p1+p2)/2;if(num[p1]==num[indexmin] && num[p2]==num[indexmin])return MinOrder(num,p1,p2);else if(num[indexmin]>=num[p1])p1=indexmin;else if(num[indexmin]<num[p2])p2=indexmin;}return num[indexmin];}};int main(void){int num[]={3,4,5,1,2};//int num[]={1,1,1,1,1};//int num[]={1,2,3,4,5};//int num[]={1,0,1,1,1};//int num[]={1,1,1,0,1};Solution object;int minnumber=object.FindMin(num,5);cout<<minnumber<<endl;system("pause");return 0;}
阅读全文
0 0
- 面试题8_旋转数组的最小值
- 面试题8:旋转数组中的最小值
- 面试题8:找到旋转数组的最小值(java)
- 面试题8-旋转数组的最小值
- 面试题8—旋转数组的最小值
- 【剑指offer】面试题8:旋转数组中的最小值
- 剑指offer 面试题8 输出旋转数组最小值
- 剑指 offer——面试题8求旋转数组的最小值
- 剑指Offer:面试题8——旋转数组的最小值(java实现)
- 剑指offer 面试题8 旋转数组的最小值 java版答案
- 面试题8:旋转数组的最小值(Leetcode-153,154)
- 面试题8:数组的旋转
- 【面试题】寻找旋转排序数组中的最小值
- 旋转数组的最小值
- 旋转数组的最小值
- 旋转数组的最小值
- 旋转数组的最小值
- 旋转数组的最小值
- 关于内容原创
- MxNet 学习笔记(1):MxNet中的NDArray
- C++11中std::condition_variable的使用
- Python非官方的第三方库二进制安装包下载地址推荐:gohlke
- Java 并发编程 基础 一
- 面试题8_旋转数组的最小值
- 搜索引擎排名用优质内容脱颖而出
- Machine Learning(Stanford)| 斯坦福大学机器学习笔记--第一周(4.梯度下降)
- Android MVP模式实战
- Linux学习之权限管理命令&&深入理解rwx权限
- IO & IR 个人作业汇总——康熙
- 网站被百度降权?
- 洛谷3810三维偏序模板题,树套树
- 关于HTC Vive用unity3d链接后报错“Assertion failed on expression: IsMatrixValid”问题