旋转数组的最小数字

70 阅读1分钟

旋转数组的最小数字

把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。

输入一个升序的数组的一个旋转,输出旋转数组的最小元素。

例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。

数组可能包含重复项。

注意:数组内所含元素非负,若数组大小为0,请返回-1。

样例
输入:nums=[2,2,2,0,1]

输出:0

线性扫描

时间复杂度O(n)

class Solution {
    public int findMin(int[] nums) {
        if(nums.length == 0){
            return -1;
        }
        for(int i = 1; i < nums.length;i++){
            if(nums[i - 1] > nums[i]){
                return nums[i];
            }
        }
        return nums[0];
    }
}