力扣 盛最多水的容器

本文详细介绍了如何使用双指针策略解决LeetCode第11题——盛最多水的容器。通过分析示例数据,解释了左指针和右指针的移动规则,以及如何更新最大水量。关键在于找到两个高度较小的边形成最大的宽度,从而最大化水量。解题过程中强调了迭代过程和状态记录的重要性。
摘要由CSDN通过智能技术生成

力扣:11题盛最多水的容器:

题目描述:在这里插入图片描述

解题思路:

提示:这里填写问题的分析:

1.求水的容量可以想到也就是求这个蓝色区域的面积,即两侧垂直线低的一侧作为高,两条线之间的距离为宽,求长方形面积。联想到使用双指针的办法,左指针指向数组左侧,右指针指向数组最右侧
2.流程分析:以数据[1,8,6,2,5,4,8,3,7]为例子
左指针指向索引为0的元素,即值为1,右指针指向7,说明此时左边高度为1,右边为7,所以水量为min(1,7)乘以两条垂线之间的距离,距离为右指针减去左指针。
3.这时候小的指针为左指针,这时左指针++,往右移动,指向8,水量为min(8,7)*距离,此时右指针指向的高度低,所以右指针左移。
4.需要一个空值记录更新每次的容积,然后将每次的水量与上一次的比较取最大值。


解决方案:

提示:这里填写该问题的具体解决方案:

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值