Ctrl K

Две стопки по числу больших

Сложная
Дан массив values. Его числа по очереди раскладываются в две стопки — левую и правую: - первое число кладётся в левую стопку, второе — в правую; - каждое следующее число x идёт в ту стопку, где **больше** чисел, строго превосходящих x; - если таких чисел в стопках поровну, x идёт в стопку, где сейчас меньше чисел; - если и размеры равны — в левую. Каждое число добавляется в конец своей стопки. Верните левую стопку, за которой сразу идёт правая, одним массивом.
Пример 1
values=[4, 6, 5, 1, 5] → [4, 6, 5, 1, 5]

Левая стопка [4], правая [6]. Для 5: больших слева 0, справа 1 — в правую. Для 1: слева 1, справа 2 — в правую. Для 5: слева 0, справа 1 — в правую. Итог: [4] + [6, 5, 1, 5].

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

Больших нигде нет, поэтому числа идут в более короткую стопку, а при равенстве — в левую: [2, 2] + [2, 2].

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

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