[leetcode] 42 Trapping Rain Water
来源:互联网 发布:电饭煲型号推荐 知乎 编辑:程序博客网 时间:2024/05/17 01:40
具体思路就是先计算所有柱子的面积,然后先从左到右然后从右到左把坑填满,计算一个面积
用第二个面积减去第一个面积就是所求,注意各种细节。特殊情况单独讨论。
class Solution {public: int trap(vector<int>& height) { //[0,1,0,2,1,0,1,3,2,1,2,1] // 0 1 2 3 4 5 6 7 8 9 10 if(height.empty()) { return 0; } int index=0; int max = 0; int maxunm=0; int flag=0; //寻找最大值的位置 for (int i = 0; i <height.size(); i++) if (height[i] >= height[max]) { max = i; maxunm=height[max]; } //柱子所占的面积 int pre=0; for(int i=0;i<height.size();i++) { pre=pre+height[i]; } if(maxunm==0) { return 0; } int sum=0; if(height.size()<=2) { return 0; } for(int i=0,j=1;i<height.size()-2;i++,j++) { if(i<max) { if(height[i]>height[j]) { height[j]=height[i]; flag=1; } else{ continue; } } else { if(height[i]<height[j]) { height[i]=height[j]; flag=1; } else{ continue; } } } for(int i=height.size()-2,j=height.size()-1;i>=0;i--,j--) { if(i<max) { if(height[i]>height[j]) { height[j]=height[i]; flag=1; } else{ continue; } } else { if(height[i]<height[j]) { height[i]=height[j]; flag=1; } else{ continue; } } } for(int i=0;i<height.size();i++) { sum=sum+height[i]; } //雨水的面积等于修改过后的面积减去之前柱子的面积 if(flag==1) { return sum-pre; } else { return 0; } }};
0 0
- [leetcode 42] Trapping Rain Water
- leetcode || 42、 Trapping Rain Water
- [LeetCode 42]Trapping Rain Water
- LeetCode(42) Trapping Rain Water
- Leetcode 42: Trapping Rain water
- LeetCode---(42)Trapping Rain Water
- leetcode 42: Trapping Rain Water
- LeetCode-42 Trapping Rain Water
- Leetcode#42||Trapping Rain Water
- Leetcode #42 Trapping Rain Water
- leetcode 42 Trapping Rain Water
- leetcode-42 Trapping Rain Water
- leetcode 42:Trapping Rain Water
- LeetCode 42 Trapping Rain Water
- LeetCode 42 - Trapping Rain Water
- [leetcode] 42 Trapping Rain Water
- LeetCode(42)-Trapping Rain Water
- LeetCode 42 Trapping Rain Water
- java中String类的几种常用方法
- 如何让一个div中嵌套的div上下左右都居中
- uva 10534——Wavio Sequence
- 关于iOS工程文件夹的布局框架.
- 关于adb不支持直接GC的另类解决办法
- [leetcode] 42 Trapping Rain Water
- UI图标使用规范
- JMeter基础之—录制脚本
- 数论-快速幂
- 【最小表示法】HDU2069How many【模板】
- POJ 3253 (优先队列)
- JavaScript 学些笔记
- 常见排序算法小结
- iOS:手把手教你发布代码到CocoaPods(Trunk方式)