LeetCode 11. 盛最多水的容器(Golang)


给定 n 个非负整数a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。

说明:你不能倾斜容器,且 n 的值至少为 2。

在这里插入图片描述

图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。

示例:

输入: [1,8,6,2,5,4,8,3,7]
输出: 49
func maxArea(height []int) int {
	s := make([]int, 1)
	for i := 0; i <= len(height); i++ {
		for j := 0; j < len(height); j++ {
			if i < j {
				area := (j - i) * (minNum(height[i], height[j]))
                if area>s[0]{
                    s[0] = area
                }
			}
		}
	}
	return s[0]
}

func minNum(i, j int) int {
	if i > j {
		return j
	} else {
		return i
	}
}

文章作者: Jack Li
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Jack Li !
评论
  目录