《剑指offer》旋转数组的最小数字
一、题目描述
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。
二、输入描述
输入一个递增排序的数组的一个旋转
三、输出描述
输出旋转数组的最小元素
例如:
例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。
注意:给出的所有元素都大于0,若数组大小为0,请返回0。
四、牛客网提供的框架
class Solution {
public:
int minNumberInRotateArray(vector<int> rotateArray) {
}
};
五、解题思路
保存数组最前面那个数作为最小数,从前往后查找,当找到第一个比该数小时,替换最小数,结束查找,否则直到查找到数组末尾。
六、代码
class Solution {
public:
int minNumberInRotateArray(vector<int> rotateArray) {
int len = rotateArray.size();
if(len == 0) return 0;
int minNum = rotateArray[0];
for(int i = 1; i < len; i++)
{
if(rotateArray[i] < minNum)
{
minNum = rotateArray[i];
}
}
return minNum;
}
};