Tous les défis
Moyen 0 résolus 0 % de réussite

K-ième plus petit élément

Trouvez la k-ième plus petite valeur sans trier entièrement.

Retournez la k-ième plus petite valeur de la liste (k commence à 1). Quickselect la trouve en temps moyen O(n) sans tout trier.

Implémentez kth_smallest(numbers, k).

Entrée

numbers : La liste d'entiers. k : Quelle plus petite valeur retourner, en commençant à 1.

Sortie

Retournez la k-ième plus petite valeur.

Contraintes

1 ≤ k ≤ longueur ≤ 200 000

Exemples

Exemple 1
Entrée :
k = 3
numbers = [7, 10, 4, 3, 20, 15]

Sortie attendue :
expected = 7
Entrée :
long long k = 3;
std::vector<long long> numbers = {7, 10, 4, 3, 20, 15};

Sortie attendue :
long long expected = 7;
Entrée :
long k = 3;
long[] numbers = new long[] {7, 10, 4, 3, 20, 15};

Sortie attendue :
long expected = 7;

Explication

Trié : 3, 4, 7, 10, 15, 20 ; la 3ᵉ plus petite est 7.

Exemple 2
Entrée :
k = 2
numbers = [5, 5, 1]

Sortie attendue :
expected = 5
Entrée :
long long k = 2;
std::vector<long long> numbers = {5, 5, 1};

Sortie attendue :
long long expected = 5;
Entrée :
long k = 2;
long[] numbers = new long[] {5, 5, 1};

Sortie attendue :
long expected = 5;

Explication

Trié : 1, 5, 5 ; la 2ᵉ plus petite est 5 (les doublons comptent).

Références

Ce défi a été adapté pour CodeUtility. Suivez l'énoncé et les contraintes ci-dessus.

Apprenez des autres

Solutions de la communauté

Aucune solution publiée pour l'instant. Résolvez ce défi pour partager la première.