仰望星空

位我上者,灿烂星空;道德律令,在我心中。

0%

接雨水问题

【道德经·第三十八章·上】上德不德,是以有德;下德不失德,是以无德。上德无为而无以为;下德无为而有以为。上仁为之而无以为;上义为之而有以为。上礼为之而莫之应,则攘臂而扔之。

42. 接雨水

给定 n 个非负整数表示的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
class Solution {
public:
int trap(vector<int>& height) {
if(height.size() == 0) {
return 0;
}

long long ans = 0;

int l = 0, r = height.size()-1;

int maxL = 0;
int maxR = 0;
while(l < r) {
maxL = max(maxL, height[l]);
maxR = max(maxR, height[r]);

if(maxL < maxR) {
ans += maxL-height[l++];
} else {
ans += maxR-height[r--];
}
}

return ans;
}
};

位我上者,灿烂星空;道德律令,在我心中。