蓄水池问题
2016-10-22 19:19
162 查看
数组中的每个数对应柱子的高度,求总蓄水量
For example, Given [1,0,2,1,0,1,3,2,1,2,1], return 6
Trapping Rain Water
从左到右遍历数组,找出每个i的maxleft
从右到左遍历数组,找出每个i的maxright
若min(maxleft,maxright)大于i的高度,则其差值为i的蓄水量
For example, Given [1,0,2,1,0,1,3,2,1,2,1], return 6
Trapping Rain Water
从左到右遍历数组,找出每个i的maxleft
从右到左遍历数组,找出每个i的maxright
若min(maxleft,maxright)大于i的高度,则其差值为i的蓄水量
class Solution { public: int trap(vector<int>& height) { const int n=height.size(); int *left=new int (); int *right=new int (); int sum=0; for(int i=1;i<n;++i) left[i]=max(left[i-1],height[i-1]); for(int i=n-2;i>=0;--i) right[i]=max(right[i+1],height[i+1]); for(int i=0;i<n;++i) { int value=min(left[i],right[i]); if(value>height[i]) sum+=value-height[i]; } delete[] left; delete[] right; return sum; } };
相关文章推荐
- 蓄水池抽样(Reservoir Sampling)问题
- 水池问题
- nyoj78圈水池(凸包问题)
- 凸包问题——圈水池
- 凸包问题——圈水池
- 凸包问题——圈水池
- 蓄水池问题
- 凸包问题——圈水池
- 凸包问题——圈水池
- NYOJ 圈水池(凸包问题)
- 水池问题的lua语言算法(面试题分析:我的Twitter技术面试失败了)
- 水池蓄水问题(Trapping Rain Water)
- 简单水池&&迷宫问题
- nyoj 27水池问题
- 凸包问题(圈水池)
- nyoj 78 圈水池 凸包问题 篱笆问题
- 水池问题的lua语言算法(面试题分析:我的Twitter技术面试失败了)
- 水池问题
- 凸包问题——圈水池
- 凸包问题——圈水池