分析
这道题如果有双指针的思想难度不大。 我们只需要设立左右指针, 让他们从两端往中间扫描每个元素, 并确保面积始终为最大值即可。
解答
class Solution {public: int maxArea(vector<int> &height) {
int num = height.size(); auto left = 0, right = num - 1, ans = 0;
while (left < right) { auto min_height = min(height[left], height[right]); ans = max((right - left) * min_height, ans);
if (height[left] >= height[right]) right--; else left++; }
return ans; }};