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
}
相关推荐
_Itachi__2 小时前
LeetCode 热题 100 283. 移动零
数据结构·算法·leetcode
闲猫3 小时前
go WEB框架
前端·golang·web·xcode
鱼不如渔3 小时前
leetcode刷题第十三天——二叉树Ⅲ
linux·算法·leetcode
南宫生4 小时前
力扣每日一题【算法学习day.131】
java·学习·算法·leetcode
{⌐■_■}10 小时前
【git】工作场景下的 工作区 <-> 暂存区<-> 本地仓库 命令实战 具体案例
大数据·git·elasticsearch·golang·iphone·ip·etcd
武乐乐~14 小时前
欢乐力扣:赎金信
算法·leetcode·职场和发展
sjsjs1116 小时前
【数据结构-并查集】力扣1202. 交换字符串中的元素
数据结构·leetcode·并查集
Onlooker12917 小时前
LC-单词搜索、分割回文串、N皇后、搜索插入位置、搜索二维矩阵
算法·leetcode
19岁开始学习18 小时前
Go学习-入门
开发语言·学习·golang
一小路一18 小时前
Go Web 开发基础:从入门到实战
服务器·前端·后端·面试·golang