剑指offer-面试题11-旋转数组的最小数字-二分法
2024-09-06 19:01:16
/*
题目:
把一个数组最开始的若干个元素搬到数组末尾,我们称之为数组的旋转。
输入一个递增排序的数组的旋转,输出旋转数组中的最小元素。
*/
/*
思路:
采用二分的方法,旋转数组实质上是上左半部分为递减数组,右半部分为递增数组。
取中间元素mid,若大于等于最右端的元素,则说明mid在左半部分,则low=mid+1;
若小于最右端的元素,则说明mid在右半部分,则high = mid; */
int minNumberInRotateArray(vector<int> rotateArray) {
int length = rotateArray.size();
if( length== 0 ) return 0;
int low = 0, high = length - 1, mid = 0;
while(low < high){
mid = low + ((high - low) >> 2);
if(rotateArray[mid] >= rotateArray[high]){
low = mid + 1;
}else if(rotateArray[mid] < rotateArray[high]){
high = mid;
}
}
return rotateArray[low];
}
最新文章
- [收集]MVC3 HTML辅助方法集录
- 用excel做分组散点图
- MongoDB GridFS 对图片进行增删改
- ios 多线程必读内容 :锁
- 原创docker dcos 的安装
- maven 多工程搭建演示
- GCC 编译详解
- 转!!URL和URI区别
- OpenGL图形管线和坐标变换[转]
- 从 IT 的角度思考 BIM(一):面向对象
- 五种I/O 模式——阻塞(默认IO模式),非阻塞(常用语管道),I/O多路复用(IO多路复用的应用场景),信号I/O,异步I/O
- 线性代数(矩阵乘法):POJ 2778 DNA Sequence
- jquery ajax调用
- 一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar](一)
- Yii 2.0.3 Advanced版控制器不能包含大写字母的Bug
- 【JVM】JVM随笔索引
- C# Math的说有函数 以及说明
- CodeCraft-19 and Codeforces Round #537 Div. 2
- Codeforces 584E - Anton and Ira - [贪心]
- Codeforces 799D Field expansion(随机算法)