Day35(接雨水)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200404224427396.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1lvdW5nTlVBQQ==,size_16,color_FFFFFF,t_70#pic_center)
class Solution {
public int trap(int[] height) {
int ans = 0;
for(int i=1;i<height.length-1;i++){
int leftMax = 0;
int rightMax = 0;
for(int j=0;j<=i;j++){
leftMax = Math.max(leftMax,height[j]);
}
for(int k=i;k<height.length;k++){
rightMax = Math.max(rightMax,height[k]);
}
ans += Math.min(leftMax,rightMax)-height[i];
}
return ans;
int n = height.length;
int ans = 0;
if(n==0){
return 0;
}
int[][] dp = new int[n][2];
dp[0][0] = height[0];
dp[n-1][1] = height[n-1];
for(int i=1;i<n;i++){
dp[i][0] = Math.max(dp[i-1][0],height[i]);
}
for(int j=n-2;j>=0;j--){
dp[j][1] = Math.max(dp[j+1][1],height[j]);
}
for(int k=0;k<n;k++){
ans += Math.min(dp[k][0],dp[k][1])-height[k];
}
return ans;
}
}