本文最后更新于 2024-06-27,文章内容可能已经过时。

描述

给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。

找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。

返回容器可以储存的最大水量。

双指针解决

代码

func maxArea(height []int) int {
	l := 0
	r := len(height) - 1
	t := 0
	for l < r {
		t = max(min(height[l], height[r])*(r-l), t)
		if height[l] < height[r] {
			l++
		} else {
			r--
		}
	}
	return t
}