双指针法,这个数量是有限的,两个指针逐渐向中间逼近,找到面积最大的值即可
func maxArea(height []int) int {
end := len(height) - 1
left, right := 0, end
maxVal := (right - left) * min(height[left], height[right])
//移动短指针
for left < right {
if height[left] < height[right] {
left++
} else {
right--
}
//重新计算并更新最大值
val := (right - left) * min(height[left], height[right])
if val > maxVal {
maxVal = val
}
}
return maxVal
}