题目:

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

上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 感谢 Marcos 贡献此图。

示例:

输入: [0,1,0,2,1,0,1,3,2,1,2,1]
输出: 6

解题思路:

class Solution {
public int trap(int[] height) {
// 至少三块方可积水
if (height.length < 3) return 0; int i, result = 0, length = height.length; int[] L = new int[length];
int[] R = new int[length]; // 记录每个挡板的左/右边的最高挡板高度 L[0]和R[length-1]为0
for (i = 1; i < length; i++) {
L[i] = Math.max(L[i-1], height[i-1]);
R[length - 1 - i] = Math.max(R[length-i], height[length-i]);
} // 计算积水
for (i = 0; i < length; i++) {
if (L[i] > height[i] && R[i] > height[i]) {
result += Math.min(L[i], R[i]) - height[i]; //左右挡板的较小值减去其高度即可
}
}
return result;
}
}

最新文章

  1. Django入门2
  2. .Net Core 跨平台系列之环境部署
  3. Jmail发送邮件
  4. 基于HTML5技术的电力3D监控应用(一)
  5. ubuntu创建、删除文件及文件夹方法
  6. nrf51822裸机教程-PPI
  7. http://182.92.241.20/mypro/login 偶的点金项目细化分包管理平台即将上线!!
  8. bzoj1878
  9. lex 和 yacc 的区别与联系
  10. 2014.9.23window对象
  11. What Is Your Grade?(水,排序)
  12. 浅谈JavaScript中的柯里化函数
  13. geom设置—条形图
  14. 合唱团 (线性dp)
  15. 第十三章 部署Java应用程序
  16. 编写一个BAT脚本协助运维人员遇到问题时候调测数据库是否有效连接成功的操作攻略
  17. “SecureCRT遇到一个致命的错误且必须关闭”处理办法
  18. SpringMVC Spring MyBatis 框架整合 Annotation MavenProject
  19. 解决Ubuntu(Linux)平台下Sublime Text 3 安装中文输入支持库后 开启gnome-terminal报错的问题
  20. 关于Bootstrap的理解

热门文章

  1. bugfree调试
  2. java基础之HashSet如何保证对象的唯一性
  3. 【UVA11419 训练指南】我是SAM 【二分图最小覆盖,最小割】
  4. Checked异常和Runtime异常体系
  5. not1,not2,bind1st和bind2nd详解
  6. python实现高效率的排列组合算法-乾颐堂
  7. Spirng.net 替换任意方法
  8. mysql表名忽略大小写配置
  9. HDU 6127 Hard challenge (极角扫描)
  10. js的常用方法