classSolution: deftrap(self, height: List[int]) -> int: height_len = len(height) if height_len < 3: return0 max_value = 0 max_index = 0 for key,value inenumerate(height): if value > max_value: max_value = value max_index = key # 面积 area = 0 # left -> max part_max = height[0] for left inrange(max_index): if height[left] > part_max: part_max = height[left] else: area += part_max - height[left] # right -> max part_max = height[height_len-1] for right inrange(height_len-1,max_index,-1): if height[right] > part_max: part_max = height[right] else: area += part_max - height[right] return area