leetcode 11. 盛最多水的容器

题解

通过移动两个序号i,j,找出最大值,具体步骤就是高度较低的往内移动

示例代码(go)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
func maxArea(height []int) int {
res := 0
i, j := 0, len(height)-1
for i < j {
res = max(res, (j-i) * min(height[i], height[j]))
if height[i] < height[j] {
i++
} else {
j--
}
}
return res
}

func max(a, b int) int {
if a > b {
return a
}
return b
}

func min(a, b int) int {
if a < b {
return a
}
return b
}