题目
- 给一个数组,表示在位置 i 上,边界的高度为 height[i],求边界和 x 轴组成的容器的最大面积
思路
- 指针指向数组的头和尾,以此为边界,计算面积,每次挪动更短的边界,去探寻是否有更大的面积
- 因为这是以当前短边为边界的容器最大值了
代码
class Solution {
public:
int maxArea(vector<int>& height) {
int ans = 0;
int left = 0, right = height.size()-1;
while (left < right) {
int square = min(height[left], height[right]) *(right - left);
ans = max(ans, square);
if (height[left] < height[right]) {
left++;
} else {
right--;
}
}
return ans;
}
};