Ctrl K

Сровнять башни

Средняя
В ряд стоят башни из кубиков, высота i-й башни — heights[i]. Один ход устроен так: 1. Найдите самую высокую башню; если таких несколько, берите самую левую. 2. Найдите ближайшую меньшую высоту среди всех башен — наибольшее значение, строго меньшее высоты выбранной башни. 3. Разберите выбранную башню до этой высоты. Ходы повторяются, пока все башни не станут одной высоты. Верните, сколько ходов для этого понадобится.
Пример 1
heights=[7, 2, 7, 4] → 5

Разные высоты: 2, 4, 7. Каждая башня высотой 7 опускается дважды (до 4, потом до 2), башня высотой 4 — один раз, а 2 не трогаем. Всего 2 + 2 + 1 = 5 ходов.

Пример 2
heights=[3, 3] → 0

Башни уже одной высоты — ходов не нужно.

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

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