题目:42. Trapping Rain Water
难度:困难
类型:双指针 动态规划
星级:五星推荐
题意:柱子的高度是由两边的最小值决定的,统计两边的最值,然后取最小的高度与原高度相减。
版本1
class Solution {
public:
int trap(vector<int>& h) {
int n = h.size();
vector<int> l(n), r(n);
for(int i = 0; i < n; i++) l[i] = i==0?h[i]:max(h[i], l[i-1]);
for(int i = n-1; i >= 0; i--) r[i] = i==n-1?h[i]:max(h[i], r[i+1]);
int res = 0;
for(int i = 0; i < n; i++) res+= min(l[i], r[i]) - h[i];
return res;
}
};