双指针法:两个指针分别指向左右边界,记录最大面积,由于面积由短板决定,两个指针中较短的短指针向内移动一格,再次记录最大面积, 直到两指针相遇,得出答案。
class Solution {
public:
int maxArea(vector<int>& height) {
int i = 0, j = height.size() - 1, res = 0;
while(i != j)
{
res = height[i] < height[j]? max(res, height[i]*(j-(i++))) : max(res, height[j]*((j--)-i));
}
return res;
}
};