publicclass jieyushui {publicstaticvoidmain(String[] args){int[] a ={0,1,0,2,1,0,1,3,2,1,2,1};water(a);}publicstaticvoidwater(int[] a){int water =0;int left =0;for(int i =0; i < a.length; i++){if(a[i]>=1){
left = i++;//寻找右端要从左边的后一位开始int curWater =0;while( i < a.length&&a[left]>a[i]){
curWater = curWater + a[left]- a[i++];//装水的部分是比左边低的部分}if(i<a.length){
water = water+curWater;
i --;//抵消i++,此边界还可作下一次的左边界}else{//右边一直比左边低的情况,降低left的高度,与右边匹配
i = left -1;//抵消i++;
a[left]--;}}}System.out.println(water);}}