public long maxWater (int[] arr) {
// write code here
if(arr.length==0) return 0;
int sum=0;
int left=0;
int right=arr.length-1;
int maxL=0;
int maxR=0;
while (left<right){
maxL=Math.max(maxL,arr[left]);
maxR=Math.max(maxR,arr[right]);
if(maxR>maxL) sum+=maxL-arr[left++];
else sum+=maxR-arr[right--];
}
return sum;
}
import java.util.*;
public class Solution {
/**
* max water
* @param arr int整型一维数组 the array
* @return long长整型
*/
public long maxWater (int[] arr) {
// write code here
int l=arr.length;
int[] leftmax=new int[l];
leftmax[0]=arr[0];
int[] rightmax=new int[l];
rightmax[l-1]=arr[l-1];
for (int i=1;i<l;i++) leftmax[i]=Math.max(leftmax[i-1],arr[i]);
for (int i=l-2;i>=0;i--) rightmax[i]=Math.max(rightmax[i+1],arr[i]);
int sum=0;
for (int i=0;i<l;i++){
sum+=Math.min(leftmax[i],rightmax[i])-arr[i];
}
return sum;
}
}