接雨水
#include<algorithm>
class Solution {
public:
/**
* max water
* @param arr int整型vector the array
* @return long长整型
*/
long long maxWater(vector<int>& arr) {
// write code here
if(arr.size() == 0)
return 0;
long ans = 0;
int left_max[arr.size()];
int right_max[arr.size()];
left_max[0] = arr[0];
int len = arr.size();
for(int i = 1; i< len;i++){
left_max[i] = max(arr[i],left_max[i-1]);
}
right_max[len-1] = arr[len-1];
for(int j = len-2; j>=0;j--){
right_max[j] = max(arr[j],right_max[j+1]);
}
for(int i = 1; i < len-1;i++){
ans+= min(right_max[i],left_max[i]) - arr[i];
}
return ans;
}
};
京公网安备 11010502036488号