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
}
相关推荐
向上的车轮3 分钟前
基于go语言的云原生TodoList Demo 项目,验证云原生核心特性
开发语言·云原生·golang
hansang_IR25 分钟前
【题解】洛谷 P4286 [SHOI2008] 安全的航线 [递归分治]
c++·数学·算法·dfs·题解·向量·点积
360智汇云1 小时前
k8s交互桥梁:走进Client-Go
golang·kubernetes·交互
qq_172805592 小时前
Go 装饰器模式学习文档
学习·golang·装饰器模式
1白天的黑夜12 小时前
哈希表-49.字母异位词分组-力扣(LeetCode)
c++·leetcode·哈希表
秦禹辰3 小时前
宝塔面板安装MySQL数据库并通过内网穿透工具实现公网远程访问
开发语言·后端·golang
愚润求学4 小时前
【贪心算法】day7
c++·算法·leetcode·贪心算法
chen_ever5 小时前
golang之go modules
开发语言·后端·golang
今天头发还在吗7 小时前
【Go】:mac 环境下GoFrame安装开发工具 gf-cli——gf_darwin_arm64
macos·golang·go·gf-cli
是誰萆微了承諾13 小时前
【golang学习笔记 gin 】1.2 redis 的使用
笔记·学习·golang