双指针法直接求解
func maxArea(height []int) int {
l, r := 0, len(height)-1
// 分别记录最大容器体积和当前容器体积
maxSize := 0
size := 0
for l < r {
// 左右指针的坐标和对应数组中的较小值求的当前容器体积
size = (r - l) * min(height[l], height[r])
if size > maxSize {
maxSize = size
}
// 数组中对应值较低的指针需要移动,才能找到更大的体积
if height[l] <= height[r] {
l++
} else {
r--
}
}
return maxSize
}
func min(x int, y int) int {
if x < y {
return x
}
return y
}