
思路
双指针
1.从两边收缩计算,每次循环取左右指针相对小的一边然后去乘两个指针之间的距离。
2.通过一个变量res记录每次计算的值,每次循环去和第一步中计算得值比较,取大值。
3.循环中比较左右指针对应数组中对应值
arr[left]<arr[right] left++;
arr[left]>=arr[right] right—;
题解
function maxArea(height: number[]): number {let left: number = 0;let right: number = height.length - 1;let count: number = right;let res: number = 0;while (left < right) {const sum = Math.min(height[left], height[right]) * count;res = Math.max(sum, res);if (height[left] < height[right]) {left++;} else {right--;}count--;}return res;};
