Накопитель дождевой воды
Источник: https://leetcode.com/problems/trapping-rain-water/ Даны n неотрицательных чисел, которые кодируют неровную поверхность, состояющую из столбиков. Ширина каждого столбика = 1. Подсчитать, сколько дождевой воды можно накопить между столбиками. Пример 1: Дано: height = [0,1,0,2,1,0,1,3,2,1,2,1] Результат: 6 Объяснение: Неровная поверхность, образуемая столбиками (черные квадраты) закодирована массивом [0,1,0,2,1,0,1,3,2,1,2,1]. Вода (голубые столбики) задерживается во впадинах паверхности. И обозначена голубыми квадратами. Всего у нас 6 голубых квадратов. Пример 2: Дано: height = [4,2,0,3,2,5] Результат: 9 Ограничения: n == height.length 1 <= n <= 2 * 10 4 0 <= height[i] <= 10 5 Идея решения Мы можем использовать стек, чтобы учитывать столбики поверхности, которые окружены другими столбиками - и значит, они могут быть покрыты водой. Сканируем массив и добавляем индекс элемента в стек, когда он меньше или равен элементу, соответствующему индексу в топе...