一、思路:

左边最高和右边最高求一个最小值减去当前高度,就等于当前能装的水的量

二、代码:

class Solution {
public:int getMaxRight(vector<int>& height, int index) {int maxRight = 0;for (; index < height.size(); index++) {if (height[index] > maxRight)maxRight = height[index];}return maxRight;}int trap(vector<int>& height) {int res = 0;int rightMax = getMaxRight(height, 1), leftMax = 0;for (int i = 0; i < height.size(); i++)if (rightMax < height[i])rightMax = height[i];for (int i = 0; i < height.size(); i++){if (height[i] > leftMax)leftMax = height[i];if (height[i] == rightMax)rightMax = getMaxRight(height, i + 1);int diff = min(leftMax, rightMax) - height[i];res += (diff > 0 ? diff : 0);}return res;}
};

leetcode C++ 42. 接雨水 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 上面是由数组 [0,1,0,2,1,0,1,3,2,相关推荐

  1. LeetCode 图解 | 42. 接雨水

    点击关注上方"图解面试算法", 设为"置顶或星标",一起刷 LeetCode. 作者:ioc 今天的题目来源于 LeetCode 中第 42 题:接雨水,har ...

  2. LeetCode 525 连续数组/剑指 Offer II 011. 0 和 1 个数相同的子数组

    题目链接:525. 连续数组 思路:前缀和+哈希表 由于「0 和 1 的数量相同」等价于「1 的数量减去 0 的数量等于 0」,我们可以将数组中的 0 视作 -1,则原问题转换成「求最长的连续子数组, ...

  3. 【C语言|数组】数组a、a、a[0]、a[0][0]的区别与联系

    文章目录 1. 测试结果 2. 结果分析 2.1. 数组名a总是被视为一个一维数组 2.2. a.&a.&a[0].&a[0][0]值相同 2.3. 数据类型不同 3. 测试代 ...

  4. Swift Invalid bitcode version (Producer: '802.0.41.0_0' Reader: '800.0.42.1_0')

    问题:当更新最新的第三方库后,archive的时候会报这样的错误 Invalid bitcode version (Producer: '802.0.41.0_0' Reader: '800.0.42 ...

  5. 概率p输出1,概率1-p输出0,等概率输出0和1 【LeetCode】470. rand7()构造rand10() 系列变形(新浪、字节面试题)

    目录 1. 等概率输出0和1 1.1 题目描述 1.2 解题思路 & 代码 2. 以 1/N 的概率返回 1~N 之间的数 3. 给定函数rand5() 构造rand7() 或 rand7() ...

  6. 应用数据分析第二课第一次作业——创建一个数值范围为0~1,间隔为0.01的数组

    1.创建一个数值范围为0~1,间隔为0.01的数组 2.创建100个服从正态分布的随机数 3.对创建的两个数组进行四则运算 4.对创建的随机数组进行简单的统计分析 import numpy as np ...

  7. c++、c中数组初始化默认值如何为0

    做全局变量 int sum[1000006];//初始化设默认值为0 做局部变量 默认值只能设为0,且只有在初始化时,才能设为0(sum[100]={0};这么写就是错的): 如果设为1,则只是sum ...

  8. python numpy 数组中元素设置所有小于0的元素为0

    >>> import numpy as np >>> a = np.random.randint(-5, 5, (5, 5)) >>> a arr ...

  9. java9.0.4配置_Tomcat 9.0 安装配置

    本文转自:http://blog.sina.com.cn/s/blog_15126e2170102w5o8.html 一.JDK的安装与配置 1.从官网下载jdk,注意是jdk不是jre.最好从官网下 ...

最新文章

  1. c语言lookup用法,Vlookup函数最经典的12种用法 果断收藏!
  2. 02CSS基础选择器
  3. Nature综述:微生物沿着寄生-共生连续体进化和转变!
  4. django 框架中应用 redis 集群
  5. CTFshow 反序列化 web255
  6. mysql 触发器不能同时 insert or update or delete_运维日记|SQL server 那点事——DML触发器...
  7. 宁波python学习_python学习第十五天
  8. 利用Eclipse的Update组件实现适合企业应用的更新组件(1)
  9. flask页面操作gpn接口
  10. Verilg 2001相对于Verilog 1995的改进(Z) (内含 乘方 运算符** )
  11. 外链图片也有风险吗?
  12. 流程图软件Visio的使用笔记
  13. Quartus下软硬核固化到EPCS中(JTAG)延续上篇
  14. Pixhawk系列飞控状态通知
  15. 如何利用微信答题小程序实现盈利呢
  16. wma格式怎么转换mp3
  17. 电路不挂科——四小时学完电路原理(猴博士学习笔记1)
  18. Vista 兼容软件列表
  19. 叮咚买菜nodejs自动下单脚本,支持邮件强通知和定时任务,支持捡漏和高峰模式
  20. 紧急救援 (25 分)

热门文章

  1. IDE-Android Studio -FAQ-使用习惯(不断更新 欢迎留言)
  2. poj 1065 Wooden Sticks
  3. Android MIPI转LVDS显示屏调试之---SN65DSI84初始化参数的确定(3)
  4. Android7.1选择时区由默认的GMT+00:00改为GMT+08:00中国标准时间
  5. android bootloader阶段GPIO的控制
  6. 蚂蚁金服移动端可视化解决方案 F2 3.2 正式发布
  7. SVN服务器从Windows迁移到Linux
  8. Android开发之搜Ya项目说明(3)
  9. 在没有安装有mvc3的主机上部署asp.net mvc3网站,需要包含的DLL文件
  10. SQL 2005单用户启动实例