
双指针遍历一遍就可以计算出最大面积:
/**
* @param {number[]} height
* @return {number}
*/
var maxArea = function(height) {
let left = 0;
let right = height.length - 1;
let ret = 0;
while(left < right) {
let temp;
if (height[left] <= height[right]) {
temp = (right - left) * height[left];
left++;
}
else {
temp = (right - left) * height[right];
right--;
}
ret = Math.max(ret, temp);
}
return ret;
};

本文介绍了一种使用双指针技术高效求解盛水量最大问题的算法。通过从两端向中间逼近,根据左右两边高度的不同选择移动左指针还是右指针,从而在O(n)的时间复杂度内找到能盛最多水的方案。
1737

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



