设置两个指针i, j,固定较低的边,另一边向中间移动,找到比当前边更高的位置,更新最大容积,循环直至i >=j 结束。
class Solution {
public:
int maxArea(vector<int> &height) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
int i = 0, j = height.size()-1;
int maxn_area = 0, tmp_area = 0;
while(i < j){
if(height[i] > height[j]){
tmp_area = (j-i)* height[j];
j--;
}
else{
tmp_area = (j-i)*height[i];
i++;
}
if(tmp_area > maxn_area)
maxn_area = tmp_area;
}
return maxn_area;
}
};