Верните второе по величине уникальное значение в списке. Повторяющиеся значения учитываются один раз.
Реализуйте функцию second_largest(numbers).
Входные данные
numbers: Список неотрицательных целых чисел.
Выходные данные
Верните второе по величине уникальное значение, или -1, если такого не существует.
Ограничения
0 ≤ длина ≤ 100 000; 0 ≤ каждое значение ≤ 10⁹
Примеры
Ввод:
numbers = [4, 9, 7, 9]
Ожидаемый вывод:
expected = 7
Ввод:
std::vector<long long> numbers = {4, 9, 7, 9};
Ожидаемый вывод:
long long expected = 7;
Ввод:
long[] numbers = new long[] {4, 9, 7, 9};
Ожидаемый вывод:
long expected = 7;
Пояснение
Уникальные значения: 9, 7, 4; второе по величине — 7.
Ввод:
numbers = [5, 5]
Ожидаемый вывод:
expected = -1
Ввод:
std::vector<long long> numbers = {5, 5};
Ожидаемый вывод:
long long expected = -1;
Ввод:
long[] numbers = new long[] {5, 5};
Ожидаемый вывод:
long expected = -1;
Пояснение
Существует только одно уникальное значение, поэтому ответ — -1.
Ссылки
Это задание адаптировано для CodeUtility. Следуйте условию и ограничениям выше.