分析:
一、双指针法
- 先确定容器面积S最大的长,就是数组的头尾两个数L1和R1(确定两个指针),宽是两个数中的更小值。
- 如果我们移动指针,那么S的长必定减小,我们想让面积更大,就只能找到更长的宽。
- 因为S的宽是两个数L1和R1的更小值,所以我们就比较,谁更小就移动谁的指针。直到指针L=R。
let height = [1, 8, 6, 2, 5, 4, 8, 3, 7];
var isThree = function (height) {
let L = 0, R = height.length - 1, max = 0
while (L < R) {
let s = Math.min(height[L], height[R]) * (R - L)
if (s > max) max = s
if (height[L] > height[R]) {
R--;
} else {
L++;
}
}
return max
}
console.log(isThree(height));