剑指offer第6题

/**
 * 目标:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。
 * 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。
 * 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。
 * NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。
 * 思路:
 * 当遇到第一个小于前面的数时,即可能为最小值,把此值跟第一个值进行对比得出结果
 */
public class Solution6 {
    public int minNumberInRotateArray(int[] array) {
        if (array.length == 0) {
            return 0;
        }
        int min = array[0];
        for (int i = 0; i < array.length - 1; i++) {
            if (array[i] > array[i + 1]) {
                if (min > array[i + 1]) {
                    min = array[i + 1];
                }
            }
        }
        return min;
    }
}

 

posted @ 2020-08-07 10:26  Adom_ye  阅读(85)  评论(0编辑  收藏  举报