给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。
找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。
返回容器可以储存的最大水量。

思路:创建双指针,分别从左右两端出发。储水量取决于左右两边较矮的那个,如果左边矮,就把左端往右移;如果右边矮,就把右端往左移。可以这样考虑:本身地面是在不断缩小的,要想储水量更多,只能寄希望于高度更高,即拓宽高度的下限。
C++13 linesExpandCollapse
int maxArea(vector<int>& height) {
int ans = 0;
int left = 0, right = height.size() - 1;
while (left < right) {
int h = min(height[left], height[right]);
ans = max(ans, h * (right - left));
if (height[left] <= height[right]) left++;
else right--;
}
return ans;
}