Problema
Ver original (inglés)Devuelve el segundo valor distinto más grande de la lista. Los valores repetidos cuentan solo una vez.
Implementa second_largest(numbers).
Entrada
numbers: Una lista de enteros no negativos.
Salida
Devuelve el segundo valor distinto más grande, o -1 si no existe.
Restricciones
0 ≤ longitud ≤ 100,000; 0 ≤ cada valor ≤ 10⁹
Ejemplos
Entrada:
numbers = [4, 9, 7, 9]
Salida esperada:
expected = 7
Entrada:
std::vector<long long> numbers = {4, 9, 7, 9};
Salida esperada:
long long expected = 7;
Entrada:
long[] numbers = new long[] {4, 9, 7, 9};
Salida esperada:
long expected = 7;
Explicación
Los valores distintos son 9, 7, 4; el segundo más grande es 7.
Entrada:
numbers = [5, 5]
Salida esperada:
expected = -1
Entrada:
std::vector<long long> numbers = {5, 5};
Salida esperada:
long long expected = -1;
Entrada:
long[] numbers = new long[] {5, 5};
Salida esperada:
long expected = -1;
Explicación
Solo existe un valor distinto, así que la respuesta es -1.
Referencias
Este reto está adaptado para CodeUtility. Sigue el enunciado y las restricciones indicadas arriba.