classSolution: deftrap(self, height): """ :type height: List[int] :rtype: int """ max_left = [0for i in range(len(height))] maximun_left = - 1 for index in range(0, len(height) - 1): if height[index] > maximun_left: maximun_left = height[index] max_left[index + 1] = maximun_left max_right = [0for i in range(len(height))] maximun_right = -1 for index in range(len(height) - 1, 0, -1): if height[index] > maximun_right: maximun_right = height[index] max_right[index - 1] = maximun_right ##Traverse all the index ret = 0 for i in range(len(height)): bar = min(max_left[i], max_right[i]) if bar > height[i]: ret += (bar - height[i]) return ret