Дан массив неотрицательных чисел — высоты столбиков шириной 1. После дождя вода собирается в ямах между столбиками. Сколько единиц воды останется?
В работе: Сколько воды останется на плоской кровле с перепадами высот после ливня.
Пример 1
Ввод
heights = [3, 0, 2, 0, 4]
Вывод
7
Над столбиками 1, 2, 3 вода стоит на уровне 3: 3 + 1 + 3.
Пример 2
Ввод
heights = [1, 2, 3]
Вывод
0
Высоты растут — вода стекает.
Ограничения
- 0 ≤ длина ≤ 300 000 (в JavaScript — до 2 000 000)
- 0 ≤ высота ≤ 10⁵
- Лимит — 1 с на тест.
Как вызывается ваш код
Читать ввод и печатать ответ не нужно: мы вызываем функцию на каждом тесте и сравниваем то, что она вернула.
print() и console.log() уходят в консоль.
def trap(heights: list[int]) -> int:
Источник: отчёт о Яндексе, 2023. Условие пересказано своими словами.
Давали на собеседовании?
Ответов пока мало — ваш поможет.
Стр. 1Ctrl+Enter — запуск · Ctrl+Shift+Enter — отправка
Ожидаемый ответ не нужен: покажем, что вернула функция.
Здесь появится результат отправки.