题解 | #接雨水问题#
接雨水问题
https://www.nowcoder.com/practice/31c1aed01b394f0b8b7734de0324e00f
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # max water # @param arr int整型一维数组 the array # @return long长整型 # class Solution: def maxWater(self , arr: List[int]) -> int: # write code here i,j = 0,len(arr)-1 res = 0 height = min(arr[i],arr[j]) while i<j: # 核心思想,和那个水容积一样,动短的 if arr[i] < arr[j]:# 左边短,动左边 i += 1# 右移 if arr[i] < height: # 遇到更短的能雨水 res += height - arr[i] else: # 遇到长的更新短板 height = min(arr[i], arr[j]) else: # 右边短,动右边 j -= 1 if arr[j] < height: # 遇到短的存雨水 res += height - arr[j] else: # 遇到长的更新短板 height = min(arr[i], arr[j]) return res