接雨水
核心数学思想

超时解法(博主旧解法)
class Solution:
def trap(self, height: List[int]) -> int:
left=[]
right=[]
for i in range(len(height)):
left.append(max(height[:i+1]))
right.append(max(height[i:]))
sum=0
for i in range(len(height)):
sum=sum+(min(left[i],right[i])-height[i])
return sum
标准解法
class Solution:
def trap(self, height: List[int]) -> int:
left=[]
right=[]
left_max=0
right_max=0
for i in range(len(height)):
left_max=max(height[i],left_max)
left.append(left_max)
for i in range(len(height)-1,-1,-1):
right_max=max(height[i],right_max)
right.append(right_max)
right.reverse()
sum=0
for i in range(len(height)):
sum=sum+(min(left[i],right[i])-height[i])
return sum
```
原创
接雨水(力扣420)
本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
评论交流
欢迎留下你的想法