Ctrl K

Второе большее справа

Сложная
Дан массив неотрицательных целых чисел values. Для каждого элемента values[i] посмотрите на элементы правее него и выпишите по порядку те, что строго больше values[i]. Второй элемент в этой последовательности — ответ для позиции i. Если таких элементов меньше двух, ответ равен -1. Верните массив ответов той же длины, что и values.
Пример 1
values=[3, 1, 5, 2, 7, 4] → [7, 2, -1, 4, -1, -1]

Для 3 правее идут большие 5 и 7, второе из них — 7. Для 1 — 5 и 2, ответ 2. Для 5 больших правее только одно (7), поэтому -1. Для 2 — 7 и 4, ответ 4. У 7 и 4 ответ -1.

Пример 2
values=[6, 6, 6] → [-1, -1, -1]

Равные числа не считаются бóльшими, поэтому у всех ответ -1.

Ограничения
  • 1 ≤ len(values) ≤ 10⁵
  • 0 ≤ values[i] ≤ 10⁹
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиЛучшая пара выше планок СложнаяПервая общая крыша СложнаяПартии для сортировки с повторами СложнаяКогда роботы догонят друг друга СложнаяШирокий отрезок забора вокруг метки Сложная
загружаем Python…
Вход
values=[3, 1, 5, 2, 7, 4]
Ожидается
[7, 2, -1, 4, -1, -1]

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 226 тестов на сервере, включая скрытые.