题目链接:11. 盛最多水的容器 - 力扣(LeetCode)
题解:
while中的主要步骤解释:
首先判断索引 i 处的高度是否小于索引 j 处的高度,
如果小于则计算 ( j - i ) * height [ i++ ];(先取height [ i ]的值,在对 i 进行自加 )并与area间取较大值;
如果大于则计算 ( j - i ) * height [ j-- ];(先取height [ i ]的值,在对 j 进行自减 )并于area间取较大值。
最后得出所有容量中的最大值。
public static int maxArea(int[] height){
int area=0;
int i=0;
int j=height.length-1;
while (i<j){
area=height[i]<height[j]?Math.max(area,(j-i)*height[i++]):Math.max(area,(j-i)*height[j--]);
}
return area;
}
示例1运行结果:
最大面积为:49
Process finished with exit code 0