题目描述:https://leetcode.cn/problems/container-with-most-water/description/?envType=study-plan-v2&envId=top-100-liked
知识点:双指针
题解:问题的关键在于怎么计算出面积的最大值
- 找到左右两遍的最大值,min(left,right)*间距计算出最大值
/**
* @param {number[]} height
* @return {number}
*/
var maxArea = function (height) {
if (height.length < 2) return 0
let left = 0,
right = height.length - 1
let leftMax = height[left],
rightMax = height[right]
let maxVal = 0
while (left < right) {
// 找出最小值计算面积
let minVal = Math.min(leftMax, rightMax)
// 判断计算的值如果比之前大则更新
if (minVal * (right - left) > maxVal) {
maxVal = minVal * (right - left)
}
if (height[left] <= height[right]) {
left++
leftMax = height[left]
} else if (height[left] > height[right]) {
right--
rightMax = height[right]
}
}
return maxVal
}