美文网首页
接雨水的算法题

接雨水的算法题

作者: 咯噔爸比 | 来源:发表于2021-01-11 11:33 被阅读0次

前几天看到一个算法题就写了一下如下:

给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。


image.png
输入:height = [0,1,0,2,1,0,1,3,2,1,2,1]
输出:6
解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 

代码go语言写的,效率还算不错

func trap(height []int) int {
    total := 0
    max_num := 0
    max_index := 0
    tem_num := 0
    //sec_num := 0
    for i, v := range height {
        if i == 0 {
            max_num = v
            continue
        }
        if max_num <= v {
            max_num = v
            max_index = i
            total += tem_num
            tem_num = 0
        } else {
            tem_num += max_num - v
        }
        //fmt.Println(i, "===>", total)
    }
    s1 := height[max_index:]
    tem_num = 0
    if len(s1) > 1 {
        for i := len(s1) - 1; i >= 0; i-- {
            if i == len(s1)-1 {
                max_num = s1[i]
                continue
            }
            if max_num <= s1[i] {
                max_num = s1[i]
                total += tem_num
                tem_num = 0
            } else {
                tem_num += max_num - s1[i]
            }

        }
    }
    return total
}
思路 先算由左到右 ,直到遇到最大值,再算由右到左直到遇到最大值,求和即可。
该思路也是我迭代了好几个版本想出来的。

相关文章

  • 接雨水的算法题

    前几天看到一个算法题就写了一下如下: 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,...

  • 算法:接雨水

    问题 Given n non-negative integers representing an elevatio...

  • (多图预警)这就是那个著名的接雨水

    接雨水 今天给大家带来的是一道特别特别特别经典的题目接雨水问题,这个问题是很多算法书上面举例过的题目。虽然是难度题...

  • iOS 接雨水算法Swift

    题目描述: 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 上...

  • Java算法(3):接雨水

    给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 输入:heig...

  • Swift刷算法:接雨水

    给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。LeetCode...

  • LeetCode 第42题:接雨水

    1、前言 2、思路 对于为止 i 能装的水的格数: 3、代码 1⃣️ 暴力解法: 2⃣️ 使用备忘录 3⃣️ 双指针

  • 接雨水

    给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 上面是由数组 ...

  • 接雨水

    题目来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/trap...

  • 接雨水

    给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 上面是由数组 ...

网友评论

      本文标题:接雨水的算法题

      本文链接:https://www.haomeiwen.com/subject/gpzraktx.html