《剑指Offer》算法题——“旋转数组”的最小数字

时间:2021-08-11 10:35:01

题目描述

把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减序列的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。
//这里说的非递减并不是乱序的,也是递增的,只不过递增的过程中可以有相同数字而已
#include <iostream>
#include <vector> using namespace std;
class Solution {
public:
int minNumberInRotateArray(vector<int> rotateArray) {
int totallen = rotateArray.size();
if ( == totallen){
return ;
}else if ( == totallen){
return rotateArray[];
}
else{
int vethead = ;
int vettail = totallen - ;
int vetlen = totallen;
int vetmid = (vethead + vettail) / ;
while (rotateArray[vethead] >= rotateArray[vettail])//此时收缩范围
{
if ((vettail - vethead) <= ){//考虑过度收缩的情况,就需要往后遍历 比如{2,2,2,2,2,2,2,1,2},可能收缩到中间的两个2,而1此时在后边,所以需要向后遍历
if (rotateArray[vethead] == rotateArray[vettail] && rotateArray[vethead] >= rotateArray[vetmid]){
int i = vettail;
int j = vettail + ;
while (rotateArray[i] <= rotateArray[j])
{
i++;
j++;
}
return rotateArray[j];
//return rotateArray[vettail];
} } if (rotateArray[vethead] >= rotateArray[vetmid]){//向左收缩
vettail = vetmid;
vetmid = (vethead + vettail) / ;
continue;
}
if (rotateArray[vethead] < rotateArray[vetmid]){//向右收缩
vethead = vetmid;
vetmid = (vethead + vettail) / ;
continue;
} }
return rotateArray[vethead];
} }
}; void main(){
Solution s;
//vector<int> va = { 10, 11, 12, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
vector<int> va = { , , , , , , , , , , , , };
//vector<int> va = {2,2,1,2,2,2};
//vector<int> va = { 1, 2, 2, 2, 2, 2 };
int result = s.minNumberInRotateArray(va);
cout << result << endl;
system("pause");
}

这个算法有很多坑,需要考虑一些边界条件。不过最终还是通过了:

aaarticlea/png;base64,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" alt="" />