Problème
Afficher l’original (anglais)Retournez la deuxième plus grande valeur distincte de la liste. Les valeurs répétées ne comptent qu'une seule fois.
Implémentez second_largest(numbers).
Entrée
numbers : Une liste d'entiers non négatifs.
Sortie
Retournez la deuxième plus grande valeur distincte, ou -1 si elle n'existe pas.
Contraintes
0 ≤ longueur ≤ 100 000 ; 0 ≤ chaque valeur ≤ 10⁹
Exemples
Entrée :
numbers = [4, 9, 7, 9]
Sortie attendue :
expected = 7
Entrée :
std::vector<long long> numbers = {4, 9, 7, 9};
Sortie attendue :
long long expected = 7;
Entrée :
long[] numbers = new long[] {4, 9, 7, 9};
Sortie attendue :
long expected = 7;
Explication
Les valeurs distinctes sont 9, 7, 4 ; la deuxième plus grande est 7.
Entrée :
numbers = [5, 5]
Sortie attendue :
expected = -1
Entrée :
std::vector<long long> numbers = {5, 5};
Sortie attendue :
long long expected = -1;
Entrée :
long[] numbers = new long[] {5, 5};
Sortie attendue :
long expected = -1;
Explication
Il n'existe qu'une seule valeur distincte, donc la réponse est -1.
Références
Ce défi a été adapté pour CodeUtility. Suivez l'énoncé et les contraintes ci-dessus.