Para demostrar la seguridad OFERTA búsqueda y clasificación - el número mínimo de la matriz rotativa

título Descripción

El comienzo de una matriz de varios elementos se trasladó a la final de la matriz, la matriz que llamamos rotación. Un orden no descendente de la matriz de entrada de una rotación de la rotativa array elemento más pequeño de salida. Por ejemplo, una matriz {3,4,5,1,2} {1,2,3,4,5} es una rotación de la matriz a un mínimo. NOTA: Todos los elementos se dan en mayor que 0, si el tamaño de la matriz es 0, retorno 0.

análisis

La búsqueda binaria.

código

class Solution {
public:
    int minNumberInRotateArray(vector<int> rotateArray) {
        if(rotateArray.empty())
            return 0;
        int low = 0;
        int high = rotateArray.size() - 1;
        int mid = 0;
        
        while(low < high) {
            if(rotateArray[low] < rotateArray[high])
                return rotateArray[low];
            mid = low + (high - low) / 2;
            if(rotateArray[low] < rotateArray[mid])
                low = mid + 1;
            else if(rotateArray[mid] < rotateArray[high])
                high = mid;
            else
                low++;
        }
        return rotateArray[low];
    }
};

 

Publicado 35 artículos originales · ganado elogios 6 · vistas 6689

Supongo que te gusta

Origin blog.csdn.net/qq_35413770/article/details/105178834
Recomendado
Clasificación