装水最多的容器。算是two pointer类型的题里面比较弱智的一道吧。提议是用数组表示出一堆木桶的高度,问如果用其中两个木桶做左右的墙壁,能储存的水量最大是多少。搞懂题意,代码基本也就出来了。
时间O(n)
空间O(1)
1 /** 2 * @param {number[]} height 3 * @return {number} 4 */ 5 var maxArea = function (height) { 6 let res = 0; 7 let left = 0; 8 let right = height.length - 1; 9 while (left < right) { 10 res = Math.max(res, Math.min(height[left], height[right]) * (right - left)); 11 if (height[left] < height[right]) { 12 left++; 13 } else { 14 right--; 15 } 16 } 17 return res; 18 };