Dividir y conquistar: encontrar el K-ésimo número más grande

Descripción del problema:

Encuentre el k- ésimo elemento más grande en una matriz sin clasificar. Tenga en cuenta que es el k-ésimo elemento más grande en el orden ordenado, no el k-ésimo elemento distinto.

Ejemplo 1:

Entrada: [3,2,1,5,6,4]  yk = 2
 Salida: 5

Ejemplo 2:

Entrada: [3,2,3,1,2,4,5,5,6]  yk = 4
 Salida: 4

problema resuelto:

Usar clasificación de montón:

class Solution {
public:
    int findKthLargest(vector<int>& nums, int k) {
        make_heap(nums.begin(), nums.end());
        for(int i = 0; i < k - 1; i++)
            pop_heap(nums.begin(), nums.end()-i);
        return *nums.begin();

    }
};

 

Supongo que te gusta

Origin blog.csdn.net/j515332019/article/details/82724402
Recomendado
Clasificación