给出n个数字,表示一个高程图,高程图中每一条的宽度为1,请计算下雨之后这个地形可以存储多少水

例如

给出[0,1,0,2,1,0,1,3,2,1,2,1],返回6.

思路:

分别找到每个位置左右最高的部分,然后按照左右最高值的较小值作为高度,减去这个位置的高度就是这个位置能存水的量,所有位置能存水的量加起来就是总的蓄水量。

package main/*** * @param A int整型一维数组 * @return int整型
*/
func trap( A []int ) int {// write code here//求出每个位置左侧最高的位置length := len(A)if length == 0 {return 0}leftMax := make([]int, length)leftMax[0] = 0for i := 1; i < length; i++ {if A[i-1] > leftMax[i-1] {leftMax[i] = A[i-1]} else {leftMax[i] = leftMax[i-1]}}//求出每个位置右侧最高的位置rightMax := make([]int, length)rightMax[length-1] = 0for i := length - 2; i >= 0; i-- {if A[i+1] > rightMax[i+1] {rightMax[i] = A[i+1]} else {rightMax[i] = rightMax[i+1]}}res := 0for i := 1; i < length-1; i++ {if A[i] < leftMax[i] && A[i] < rightMax[i] {if leftMax[i] < rightMax[i] {res += leftMax[i] - A[i]} else {res += rightMax[i] - A[i]}}}return res
}

《leetcode-go》收集雨水相关推荐

  1. leetcode 407 收集雨水(java 搜索)

    二维数组存储的是每个单元的高度,求最多接多少体积的雨水 首先想到的就是找到最低点 注意看后两个图,当水超过3的时候,可以从绿的的点流进内部 所以可以想象内部现在的水的高度可以达到3,减去原来的体积,就 ...

  2. LeetCode 2086. 从房屋收集雨水需要的最少水桶数(贪心)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个下标从 0 开始的字符串 street .street 中每个字符要么是表示房屋的 'H' ,要么是表示空位的 '.' . 你可以在 空位 放置水 ...

  3. LeetCode 42 Trapping Rain Water 收集雨水

    LeetCode 42 Trapping Rain Water 收集雨水 Given n non-negative integers representing an elevation map whe ...

  4. Leetcode 407. Trapping Rain Water II 收集雨水2 解题报告

    1 解题思想 我看了下题目,发现比预想中的简单,加之我比较烂,所以其实我还是没做,只是看懂了上回贴的代码,然后做了一下注释,现在我来讲下题目. 首先请看下上一题,上一题是2D的这题是3D的: Leet ...

  5. leetcode 从房屋收集雨水需要的最少水桶数

    给你一个下标从 0 开始的字符串 street .street 中每个字符要么是表示房屋的 'H' ,要么是表示空位的 '.' . 你可以在 空位 放置水桶,从相邻的房屋收集雨水.位置在 i - 1  ...

  6. LeetCode 2086. 从房屋收集雨水需要的最少水桶数 -- 动态规划

    从房屋收集雨水需要的最少水桶数 中等 26 相关企业 给你一个下标从 0 开始的字符串 street .street 中每个字符要么是表示房屋的 'H' ,要么是表示空位的 '.' . 你可以在 空位 ...

  7. 【栈】python、单调栈解决收集雨水问题、力扣42题

    以下是leetcode 42原题: 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水. 示例 1: 输入:height = [0,1,0,2,1,0,1 ...

  8. Leetcode2086. 从房屋收集雨水需要的最少水桶数(medium)

    目录 1. 题目描述 2. 方法一:动态规划 2.1 思路 2.2 代码实现 3. 方法二 3.1 思路 3.2 代码实现 1. 题目描述 给你一个下标从 0 开始的字符串 street .stree ...

  9. Algorithm:C++语言实现之链表相关算法(单链公共结点问题、一般LCA、括号匹配、最长括号匹配、逆波兰表达式Reverse Polish Notation、直方图矩形面积、收集雨水问题)

    Algorithm:C++语言实现之链表相关算法(单链公共结点问题.一般LCA.括号匹配.最长括号匹配.逆波兰表达式Reverse Polish Notation.直方图矩形面积.收集雨水问题) 目录 ...

  10. 力扣 双周赛补题 2086. 从房屋收集雨水需要的最少水桶数

    文章目录 题目 思路 AC代码 后记 题目 从房屋收集雨水需要的最少水桶数 思路 思路是贪心,因为我们需要从左向右找寻所有的水桶数,所以我们对于每一个房屋都优先判断右边是否能放水桶,右边不能放就看左边 ...

最新文章

  1. 元旦去哪玩?用Python告诉你哪些景点爆满!
  2. 第十二届蓝桥杯大赛软件赛省赛第二场 C/C++ 大学B组
  3. Flutter如何与Native(Android)进行交互
  4. 一篇短文带您了解一下EasyCaching
  5. 安装redis和phpredis模块
  6. QAbstractTableModel中的data()到底执行几遍???
  7. 如何将卷积神经网络中的全连接层变成卷积层
  8. myeclipse 运行servlet
  9. Confluence OGNL表达式注入漏洞复现与分析(CVE-2022-26134)
  10. Maven安装教程配置
  11. 保存电脑上的屏保图片
  12. 【操作系统】-- 时间片轮转调度算法、优先级调度算法、多级反馈队列调度算法
  13. 网页设计中常用的20个Web安全字体
  14. 16.第二十二章.信息安全管理
  15. 宏碁台式计算机u盘启动,Acer台式机怎么U盘启动
  16. 阿甘正传中的人生哲理
  17. win10计算机丢失msvcr,计算机中丢失msvcr110.dll怎么办?Win10系统中丢失msvcr110.dll解决方法...
  18. c语言蚂蚁王国的货币系统,蚂蚁王国的探索之旅
  19. 欧拉角与旋转矩阵的转换关系
  20. [Watermelon_book] Chapter 3 Linear Model

热门文章

  1. mysql中的错误代码1452(23000)和 1062(23000)
  2. Linux(二)进程概念
  3. python文章抄袭检测_翟天临的噩梦:怎样用Python检测抄袭行为?
  4. R语言ggplot2 | 如何绘制美观的散点图
  5. ISIS【中间系统到中间系统】is-is链路状态协议
  6. python实现闭合导线平差与坐标计算(改进)
  7. 插入u盘需重启计算机,量产后的U盘一插入电脑就提示重启的原因及解决方法
  8. 传z播客 刘意_2015年Java基础视频笔记(day18~day20)(2016年3月20日14:33:31)
  9. 河北主治还用计算机吗,河北中级工程师职称必须考计算机么
  10. 保护模式下的RPL(一)