【力扣打卡系列】滑动窗口与双指针(盛最多水的容器)
坚持按题型打卡&刷&梳理力扣算法题系列,语言为go,Day3
盛最多水的容器
- 题目描述
- 解题思路
- 双指针
- 面积取决于数值小的高(短板效应)
- 移动双指针依次移动(移动短的那个),与当前记录的area最大值比较即可,最终返回面积最大值
- 代码参考
func maxArea(height []int) int {
left,right := 0, len(height)-1
area,ans := 0,0
for left<right{
area = (right - left)*min(height[left],height[right])
ans = max(area, ans)
if(height[left] > height[right]){
right--
}else{
left++
}
}
return ans
}
- tips
- 用max函数可以返回最大值,min函数可以返回最小值
- for left < right{,双指针问题的循环可以只给出这样的一个条件约束