剑指Offer-09旋转数组的最小数字

62 阅读1分钟
/**
 * 啊这
 * 我干了啥
 * 按题目意思就是输出数组的最小值啊
 */
public static int minArray(int[] numbers) {
    //排序就完事了
    Arrays.sort(numbers);
    return numbers[0];
}

性能不行 sort的底层用的是快排 题目还有条件可以利用上 让我来优化

public static int minArray(int[] numbers){
    //因为循环里有i+1 所以注意循环条件不能越界了
    for (int i = 0; i < numbers.length - 1; i++){
        //出现了当前值大于下一个值 那就是找到了最小值了
        if (numbers[i] > numbers[i + 1]){
            return numbers[i + 1];
        }
    }
    //不满足上面的出口 证明这个数组本身就是递增的
    return numbers[0];
}