需要对题目进行分析,最好在纸上画一下场景,可以得出O(n)解决方案,也有n方解决方案,当然比较简单,以下是o(n)方案。
func maxArea(height []int) int {
max := 0
left := 0
right := len(height) - 1
for left < right {
var area int
if height[left] < height[right] {
area = (right - left) * height[left]
left++
} else {
area = (right - left) * height[right]
right--
}
if area > max {
max = area
}
}
return max
}