跳转至

LC11 - 盛水最多的容器

ContainerWithMostWater.go
package DoublePointers

// 时间复杂度: O(n), 空间复杂度: O(1)
func maxArea(height []int) int {
    left, right := 0, len(height)-1
    result := (right - left) * min(height[left], height[right])
    for left < right {
        if height[left] <= height[right] {
            tmp := height[left]
            for left < right && height[left] <= tmp {
                left++
            }
        } else {
            tmp := height[right]
            for left < right && height[right] <= tmp {
                right--
            }
        }
        result = max(result, (right-left)*min(height[left], height[right]))
    }
    return result
}