Golang | Leetcode Golang题解之第42题接雨水

题目:

题解:

Go 复制代码
func trap(height []int) (ans int) {
    n := len(height)
    if n == 0 {
        return
    }

    leftMax := make([]int, n)
    leftMax[0] = height[0]
    for i := 1; i < n; i++ {
        leftMax[i] = max(leftMax[i-1], height[i])
    }

    rightMax := make([]int, n)
    rightMax[n-1] = height[n-1]
    for i := n - 2; i >= 0; i-- {
        rightMax[i] = max(rightMax[i+1], height[i])
    }

    for i, h := range height {
        ans += min(leftMax[i], rightMax[i]) - h
    }
    return
}

func min(a, b int) int {
    if a < b {
        return a
    }
    return b
}

func max(a, b int) int {
    if a > b {
        return a
    }
    return b
}
相关推荐
axxy20006 分钟前
leetcode之hot100---24两两交换链表中的节点(C++)
c++·leetcode·链表
chenziang113 分钟前
leetcode hot100 环形链表2
算法·leetcode·链表
慕城南风2 小时前
Go语言中的defer,panic,recover 与错误处理
golang·go
呆呆的猫3 小时前
【LeetCode】227、基本计算器 II
算法·leetcode·职场和发展
Tisfy3 小时前
LeetCode 1705.吃苹果的最大数目:贪心(优先队列) - 清晰题解
算法·leetcode·优先队列·贪心·
虽千万人 吾往矣6 小时前
golang LeetCode 热题 100(动态规划)-更新中
算法·leetcode·动态规划
姚先生979 小时前
LeetCode 209. 长度最小的子数组 (C++实现)
c++·算法·leetcode
LeonNo119 小时前
golang , chan学习
开发语言·学习·golang
HUT_Tyne26510 小时前
力扣--LCR 53.最大数组和
算法·leetcode·动态规划
南宫生10 小时前
力扣-数据结构-1【算法学习day.72】
java·数据结构·学习·算法·leetcode