Problème
Afficher l’original (anglais)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
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.
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.