思想:
start初始指向0,end指向size-1;
若height[start]短,start++;
若height[end]短,end--;
即每次刷新最短的隔板。
class Solution {
public:
int maxArea(vector<int>& height) {
int start = 0;
int end = height.size() - 1;
int max = INT_MIN;
while(start < end) {
int area = (end-start) * min(height[start], height[end]);
max = area > max ? area : max;
if(height[start] >= height[end]) {
end--;
}else {
start++;
}
}
return max;
}
};
本文介绍了一种求解两块隔板间能盛放的最大水量的算法。该算法使用双指针技巧,从两端开始逐步向中间逼近,始终保持两个指针间的距离,并更新能够容纳的最大水量。通过迭代,最终找到最大的盛水量。
448

被折叠的 条评论
为什么被折叠?



