旋转数组的最小数字

题目描述
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。
输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。
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];
    }
};
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务