我们利用了双指针
由于左边界较⼩,决定了⽔的⾼度。如果改变左边界,新的⽔⾯⾼度不确定,但是⼀定不会超 过右边的柱⼦⾼度,因此容器的容积可能会增⼤。 ◦ 如果改变右边界,⽆论右边界移动到哪⾥,新的⽔⾯的⾼度⼀定不会超过左边界,也就是不会 超过现在的⽔⾯⾼度,但是由于容器的宽度减⼩,因此容器的容积⼀定会变⼩的。
class Solution {
public:
int maxArea(vector<int>& height) {
int left = 0, right = height.size() - 1, maxproduct = 0;
while (left < right) {
int v = min(height[left], height[right]) * (right - left);
maxproduct = max(v, maxproduct);
if (height[left] < height[right]) {
left++;
} else
right--;
}
return maxproduct;
}
};