题解 | #接雨水问题#

接雨水问题

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
                   

全部评论

相关推荐

02-15 22:29
门头沟学院 Java
点赞 评论 收藏
分享
点赞 评论 收藏
分享
兄弟们,绩效自评一定得给自己打A啊!千万别谦虚给低分,不然领导正愁给谁高分,你这不就“主动请缨”了嘛,而且多数领导不会给你更高分。我几年前试用期绩效自评打了B,领导就给了同等级,还好是试用期。真别等领导主动给高评价!
准备进厂的劳伦斯很迷人:小学时候有个册子 自评 小组 老师 我谦虚打了个b 小组别人给我打b 老师来句我觉得能给他打a 但是小组长说他自评是b怎么能打高呢 那时候我才明白的道理
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务