public int minNumberInRotateArray(int [] array) {
        int len = array.length;
        if (len == 0) return 0;
        int p = 0;
        int q = len - 1;
        while (true){
            if (p + 1 <= len - 1 && array[p + 1] >= array[p]) p++;
            if (q - 1 >= 0 && array[q - 1] <= array[q])q--;
            if (q - p <= 1) break;
        }
        return array[q];
    }