class Solution { //两个指针分别指向左右两端,每次值小的前进,因为值大的前进的话永远比不过之前的结果,所以值小的那个不能作为边界了,值小的前移 public: int maxArea(vector<int>& height) { int l = 0, r = height.size() - 1; int ans = 0; while (l < r) { int area = min(height[l], height[r]) * (r - l); ans = max(ans, area); if (height[l] <= height[r]) { ++l; } else { --r; } } return ans; } };