博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
旋转数组
阅读量:4607 次
发布时间:2019-06-09

本文共 1043 字,大约阅读时间需要 3 分钟。

题目

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

#include 
using namespace std;class Solution{ public: int find_min_elem(int a[],int len); int min_order(int a[],int left,int right);};int Solution::find_min_elem(int a[],int len){ if(a==nullptr||len<=0) return -1; int left=0; int right=len-1; int middle=left; while(a[left]>=a[right]) { if(right-left==1) { return a[right]; break; } int middle=(left+right)/2; //特殊测试。 a[left]==a[right]&&a[left]==a[middle]三值相等。只能顺序查找 if(a[left]==a[right]&&a[left]==a[middle]) return min_order(a,left,right); if(a[left]
a[i]) res=a[i]; } return res;}int main(){ Solution s; int a[]={
1,0,1,1,1}; int res=s.find_min_elem(a,sizeof(a)/sizeof(a[0])); if(res<0) cerr<<"error"<

 

转载于:https://www.cnblogs.com/tianzeng/p/10134274.html

你可能感兴趣的文章
大工具-收藏
查看>>
codevs3027 线段覆盖 2
查看>>
markdown
查看>>
【leetcode】107-Binary Tree Level Order Traversal II
查看>>
Jquert data方法获取不到数据,显示为undefined。
查看>>
ssm项目中 数据库和资源的备份
查看>>
HDU5950【矩阵快速幂】
查看>>
在线C++编译器
查看>>
C#中各种serialization的比较
查看>>
P2617 Dynamic Rankings
查看>>
工作学习常识1
查看>>
github开发
查看>>
Emacs学习笔记(13):在Emacs中打开pdf
查看>>
flask模板应用-空白控制 --
查看>>
学习过程笔记 7月上
查看>>
ASP.NET WebAPI String 传值问题
查看>>
【2017-3-1】冒泡排序
查看>>
[转载]后缀数组算法总结
查看>>
pandas数据结构练习题(部分)
查看>>
NOI2016 区间 【线段树】
查看>>