题目
解法:双指针
假设现在考虑left位置和right位置的bar形成的区域,这个时候储存的水量由两边中高度小的决定,那么很显然要获得比现在更大的储存量,只有可能移动小的那边。移动大的那边只会让答案变小
class Solution {
public:int maxArea(vector<int>& height) {
if(height.empty()){
return 0;}int l = 0, r = height.size()-1;int ans = 0;while(l < r){
ans = max(ans,(r-l)*min(height[l],height[r]));if(height[l] < height[r]){
l++;}else{
r--;}}return ans;}
};