42. 接雨水

做法

考虑单独一列能生产多少贡献:用左右最大值去接这列的水

\(O(n)\)

Code

class Solution {

public:
int mx[1000000],rx[1000000];
int trap(vector<int>& height) {
int n(height.size());
// int mx(0);
for(int i=0;i<n;++i){
if(i==0) mx[i]=height[i];
else mx[i]=max(mx[i-1],height[i]);
}
int ans(0);
for(int i=n-1;i>=0;--i){
if(i==n-1) rx[i]=height[i];
else rx[i]=max(rx[i+1],height[i]);
ans+=min(rx[i],mx[i])-height[i];
}
/*int ans(0);
for(int i=0;i<n;++i){
ans+=min(rx[i],mx[i])-height[i];
}*/
return ans;
}
};

最新文章

  1. 矩阵快速幂 HDU 4565 So Easy!(简单?才怪!)
  2. XcodeiOS模拟器安装相关
  3. VisualStudio2010正则表达式查找和替换
  4. android webview开发问题及优化汇总
  5. MarkDown 语法
  6. python windows终端窗口下输出编码错误
  7. 使用BOM 的window对象属性打开新窗口
  8. Struts2几种传值
  9. 关于yum与源码安装的LAMP或LNMP网页直接显示空白页的问题?
  10. jsp关于include html、jsp等文件出现乱码问题的解决方案
  11. HDU 3507 Print Article(DP+斜率优化)
  12. 初学mysql命令
  13. USACO 3.2 Stringsobits
  14. 【转】一文掌握 Linux 性能分析之网络篇(续)
  15. vi/vim键盘对应图
  16. 变量和关系符和JAVA基本类型笔记与常考面试题
  17. MobaXterm 加装cygwin软件包
  18. Winform 开发基础分层框架
  19. 二:状压dp
  20. WPF获取程序版本号(Version)的方法

热门文章

  1. 【Java拾遗】Java transient关键字
  2. Synchronized 和 Lock 的主要区别(转)
  3. element-ui 穿梭框使用axios数据查询
  4. Java关于 class类的基础方法
  5. asp.net代码审计起始篇之系统搭建
  6. GC是如何判断一个对象为&quot;垃圾&quot;的?被GC判断为&quot;垃圾&quot;的对象一定会被回收吗?
  7. unity 3D物体使用EventSystem响应事件
  8. MySQL Replication--双主结构优缺点
  9. oracle命令行导出、导入dmp文件
  10. [ipsec][strongswan] strongswan源码分析--(五)plugin的配置文件的添加方法与管理架构解析