描述
分析
两个板之间能盛下的水的量,取决于短板。
想让两个板之间能盛下更多的水,需要改变短板的长度。
就像水桶效应:
那么用两个指针指向容器的两个板,然后每次移动较短的板即可。
移动较短的板,可能会增大容积,移动较长的板,一定会减小容积。
代码
class Solution {public int maxArea(int[] height) {int i = 0, j = height.length -1;int res = 0;while(i< j) {// 盛水的体积,取决于较短的板res = Math.max(res, Math.min(height[i], height[j]) * (j-i));// 移动较短的板if(height[i] > height[j]) {j--;} else {i++;}}return res;}
}