Array:旋转数组的最小数字

2016-05-20  本文已影响9人  敲一手烂代码
public static int minNumberInRotateArray(int [] array) {
        if (array==null||array.length==0) {
            return 0;
        }
        int min = Integer.MAX_VALUE;
        int start = 0;
        int end = array.length-1;
        int mid = (start+end)/2;
        while (start<end) {
            if (array[start]<array[mid]&&array[mid+1]<array[end]) {
                min = array[start]<array[mid+1]?array[start]:array[mid+1];
                return min;
            }
            if (array[start]<array[mid]&&array[mid+1]>=array[end]) {
                start = mid+1;
                mid = (start+end)/2;
            }
            if (array[start]>=array[mid]&&array[mid+1]<array[end]) {
                end = mid;
                mid = (start+end)/2;
            }
        }
        
        return array[start];
    }
上一篇 下一篇

猜你喜欢

热点阅读