https://leetcode-cn.com/problems/container-with-most-water/submissions/
思路:双指针。计算每次的体积并更新最大体积,i = 0, j = 最右边钢板的所在的位置 当i < j的时候
如果height[i]< height[j] 则i++ 即去掉短板,寻求更高 的板(因为i, j 之间的距离是缩减的,即底减少,所以要 容器的 高 增加)
否则j--
class Solution {
public:
int maxArea(vector<int>& height) {
int len = height.size();
if(len == 0)
return 0;
int i = 0, j = len - 1;//左右边板的所在的位置
int res = 0, tempV, tempHigh;
while(i < j)
{
tempHigh = height[i] < height[j] ? height[i] : height[j];//容器的当前高度
tempV = (j - i) * tempHigh;//容器的当前体积
res = res > tempV ? res : tempV;//更新体积
if(height[i] < height[j])//舍掉短板
i++;
else
j--;
}
return res;
}
};