对于每一个位置i,它上方所能容纳的水的容量等于: Max{Min{i位置左侧的最大值,i位置右侧的最大值}-arr[i],0} 而整个容器所能容纳的水的容量就为每一个位置上所能容纳的水的容量之和,第一个位置和最后一个位置上方所能容纳的水的容量为0。 为此,要求两个辅助数组leftMax和rightMax。leftMax[i]表示arr[0..i-1]中的最大值,rightMax[i]表示arr[i+1,arr.length-1]中的最大值。 public long maxWater (int[] arr){ if (arr == null || arr.length &...