1、题目
给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。
说明:你不能倾斜容器
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/container-with-most-water
2、解题思路
此问题优化问题,时间复杂度尽量低。很容易想到双指针,一个从头开始扫,一个从尾开始扫。
import java.util.*;
class Solution {
public int maxArea(int[] height) {
int vaule=0;
int len=height.length;
int L=0;
int R=len-1;
while(L<R){
int area=(R-L)*(height[R]>height[L]?height[L]:height[R]);
value=area>value?area:value;
if(height[L]<height[R]){L++;}
else{R--;}
}
return value;
}
}