// 双指针解法
// max表示最大容量,l、r分别指向切片的头部和尾部
// 容纳水的的最大容量min(height[l],height[r])*(r-l)
func maxArea(height []int) int {
l,r,max :=0,len(height)-1,0
for l < r {
max = maxSwap(max,min(height[l],height[r])*(r-l))
// 比较左右两边值的大小,值比较小的移动指针,直到两个指针重合
if height[l]<height[r]{
l++
}else{
r--
}
}
return max
}
func min(i,j int) int {
if i > j {
return j
}
return i
}
func maxSwap (i,j int) int {
if i > j {
return i
}
return j
}
11、盛最多水的容器(leetcode)-golang
最新推荐文章于 2024-06-12 10:00:23 发布