Собранная дождевая вода

Hard
Дан массив высот столбцов height[i] единичной ширины. После дождя вода скапливается в «ямах» между более высокими краями. Верните суммарный объём воды, который удержится.

Вода над позицией накапливается только если слева и справа есть более высокие столбцы, ограничивающие уровень. Одиночный столбец или профиль без «чаши» между краями воду не держит.

height: 0 1 0 2 1 0 1 3 2 1 2 1
вода:     . 1 . . 1 2 1 . . 1 . .
итого воды = 6

Примеры:

Вход: [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 (как на схеме в условии).
Вход: [4, 2, 0, 3, 2, 5]
Выход: 9
Объяснение: [4,2,0,3,2,5]: слева высокий край 4, справа 5; во впадинах набирается 9 единиц воды.
Вход: [1]
Выход: 0
Объяснение: [1]: один столбец — нет двух ограничивающих краёв, воды 0.

Ограничения:

1 <= height.length <= 2*10^4

Теги:

Часто на собесе Два указателя Массивы

Комментарии (0)

Войдите, чтобы оставить комментарий

Пока нет комментариев. Будьте первым!