11.盛最多水的容器-双指针法

思路

双指针,左指针取i,右指针取len(height)-1,面积等于height[短的那端]*[r-l]

根据两端高度对比,保留高的那端,另一端继续推进

package main

func maxArea(height []int) int {
	var l, r, area int
	area = 0
	l = 0
	r = len(height) - 1
	for l < r {
		if height[r] > height[l] {
			if height[l]*(r-l) > area {
				area = height[l] * (r - l)
			}
			l++
		} else {
			if height[r]*(r-l) > area {
				area = height[r] * (r - l)
			}
			r--
		}

	}

	return area

}

Last updated