class Solution:
def trap(self, height: List[int]) -> int:
def one_search(height):
pre_v = 0
res = []
for index, h in enumerate(height):
if index == 0:
pre_v = h
res.append(0)
else:
if pre_v >= h:
res.append(pre_v - h)
else:
pre_v = h
res.append(0)
return res
res = one_search(height)
res2 = one_search(height[::-1])
res2 = res2[::-1]
res = [min(r1, r2) for r1, r2 in zip(res, res2)]
return sum(res)
【LeetCode|LeetCode 42. Trapping Rain Water 时间复杂度(O(n))】两次遍历,动态规划
推荐阅读
- leetcode|算法入门之字符串(Python)【初级算法——字符串】【蓝桥杯练习】【力扣练习】
- 程序人生|英国开发者年龄歧视为29岁,女程序员幸福指数略高于男性 | 全球开发者幸福指数报告
- 备战蓝桥杯|蓝桥杯python组十二届省赛真题+解析+代码(通俗易懂版)
- 备战蓝桥杯|蓝桥杯python组十一届省赛真题+解析+代码(通俗易懂版)
- 备战蓝桥杯|2020年第十一届蓝桥杯省赛Python组(真题+解析+代码)(作物杂交)
- 备战蓝桥杯|2021年第十二届蓝桥杯省赛Python组(真题+解析+代码)(直线)
- 备战蓝桥杯|2021年第十二届蓝桥杯省赛Python组(真题+解析+代码)(时间显示)
- Java|八十一、Java算法练习打卡(三题)
- 第二次月计划|2年学完6个清华CS类硕士学位之第五次周计划