题目
一、11. 盛最多水的容器
func maxArea(height []int) int {
len := len(height)
if len < 2 {
return 0
}
left, right, res := 0, len-1, 0
for left < right {
cur := (right-left) * minOf(height[left], height[right])
res = maxOf(res, cur)
// 以下就是贪心的思想,假设左边的挡板比右边的挡板要低
// 那么右边的挡板不会想要左移,因为左移碰到的任何一种情况,都不会比当前能盛更多的水
// 所以只能让左边的挡板往右移
// 反之亦然:看 else 的判断
if height[left] < height[right] {
left++
} else {
right--
}
}
return res
}
func maxOf(a, b int) int {
if a > b {
return a
}
return b
}
func minOf(a, b int) int {
if a > b {
return b
}
return a
}