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

题目:

题解:

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
}

相关推荐

  1. 【困难】42. 雨水

    2024-04-22 09:42:05       54 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-22 09:42:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-22 09:42:05       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-22 09:42:05       82 阅读
  4. Python语言-面向对象

    2024-04-22 09:42:05       91 阅读

热门阅读

  1. C 练习实例13

    2024-04-22 09:42:05       31 阅读
  2. TensorFlow的基本概念及使用场景

    2024-04-22 09:42:05       37 阅读
  3. Oracle

    2024-04-22 09:42:05       40 阅读
  4. 【大模型系列】提示学习

    2024-04-22 09:42:05       37 阅读