Problema
Mostra originale (inglese)Restituisci il secondo valore distinto più grande nella lista. I valori ripetuti contano una sola volta.
Implementa second_largest(numbers).
Input
numbers: Una lista di interi non negativi.
Output
Restituisci il secondo valore distinto più grande, oppure -1 se non esiste.
Vincoli
0 ≤ lunghezza ≤ 100.000; 0 ≤ ogni valore ≤ 10⁹
Esempi
Input:
numbers = [4, 9, 7, 9]
Output atteso:
expected = 7
Input:
std::vector<long long> numbers = {4, 9, 7, 9};
Output atteso:
long long expected = 7;
Input:
long[] numbers = new long[] {4, 9, 7, 9};
Output atteso:
long expected = 7;
Spiegazione
I valori distinti sono 9, 7, 4; il secondo più grande è 7.
Input:
numbers = [5, 5]
Output atteso:
expected = -1
Input:
std::vector<long long> numbers = {5, 5};
Output atteso:
long long expected = -1;
Input:
long[] numbers = new long[] {5, 5};
Output atteso:
long expected = -1;
Spiegazione
Esiste un solo valore distinto, quindi la risposta è -1.
Riferimenti
Questa sfida è adattata per CodeUtility. Segui la traccia e i vincoli sopra.