旋转数组的最小数字
题目描述
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。
输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。
NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。
示例:
输入:[3,4,5,1,2]
输出:1
解题思路:
1:第[i+1]<第[i]个数字时候,此时第[i+1]个数字即为所求。
2:如果遍历一次没有找到,则最小为首元素
代码
class Solution { public: int minNumberInRotateArray(vector<int> rotateArray) { if(rotateArray.size()==0) return 0; for(int i=0;i<rotateArray.size()-1;i++){ if(rotateArray[i+1]<rotateArray[i]) return rotateArray[i+1]; } return rotateArray[0]; } };