[Leetcode]Trapping Rain Water
来源:互联网 发布:淘宝主播逢丁吉吉 编辑:程序博客网 时间:2024/05/19 12:27
Given n non-negative integers representing an elevation map where the width of each bar is 1, compute how much water it is able to trap after raining.
For example,
Given [0,1,0,2,1,0,1,3,2,1,2,1]
, return 6
.
The above elevation map is represented by array [0,1,0,2,1,0,1,3,2,1,2,1]. In this case, 6 units of rain water (blue section) are being trapped.Thanks Marcos for contributing this image!
Subscribe to see which companies asked this question
class Solution {public: /*algorithm two pointer 1)select range[i,j] which statisfy for each i < k < j, h(k) <= min(h(i),h(j)) 2)scan array from start to end to compute all the ranges value time O(n) space O(n) */ int trap(vector<int>& height) { int n = height.size(); if(n < 1)return 0; vector<int>maxH(n,0); maxH[n-1]=height[n-1]; for(int i = n-2;i >= 0;i--){ maxH[i] = max(maxH[i+1],height[i]); } int i = 0,j,sum = 0; while(i < n){ j = i+1; if(j < n && maxH[j] > 0){ int h = min(height[i],maxH[j]); while(j < n && height[j] < h){ sum += h - min(h,height[j]); ++j; } } i = j; } return sum; }};
0 0
- LeetCode: Trapping Rain Water
- LeetCode : Trapping Rain Water
- [LeetCode] Trapping Rain Water
- [Leetcode] Trapping Rain Water
- [Leetcode] Trapping Rain Water
- [LeetCode]Trapping Rain Water
- LeetCode-Trapping Rain Water
- [leetcode] Trapping Rain Water
- [LeetCode] Trapping rain water
- Leetcode: Trapping Rain Water
- Leetcode:Trapping Rain Water
- [LeetCode] Trapping Rain Water
- <Leetcode>Trapping Rain Water
- Leetcode Trapping Rain Water
- leetcode Trapping Rain Water
- leetcode Trapping Rain Water
- LeetCode Trapping Rain Water
- LeetCode | Trapping Rain Water
- AngularJS项目中使用中的几点注意事项
- 单列设计模式,构造方法私有化
- tableview样式
- 关系型数据库管理系统简介
- 欢迎使用CSDN-markdown编辑器
- [Leetcode]Trapping Rain Water
- Android生成圆形图片
- HDU-2191-悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(多重背包)
- SVN使用
- css_selector的相关匹配问题
- Linux 监控日志文件
- 如何通过本地电脑连接windows和linux服务器
- [从头学数学] 第28节 数据收集整理
- Path Sum 一个树里边,看看有没有一条路径上边的和等于给定的数