[leetcode题后感]container with most water

此题tag 为 two pointer 

而two pointer的经典应用是2sum ksum类似的题目

本题一开始并没有很好的思路 因为首先题目标书也不是很明确,应该注意两条垂直的直线之间的water量不用考虑其他直线的情况,

即 water的量就等于两条直线与x轴所构成的容器的容量

本题比较难想,不知道如何转换为常用的算法 经搜索发现了最大container的两条性质

即最大container的左边i 右边j 不存在i左边有比i的高度更高的直线 不存在j的右边比j的高度更高的直线

有了以上两条性质,还是不是很懂如何应用到算法当中

其实这两条性质装换为算法 就是说

当i和j逐步向中间靠拢并且找到了最大的area时,可以放心的进行靠拢而不用考虑i'<i,j'>j使得area<i',j'> 大于 area<i,j>的情况

所以 至此可以考虑用两个指针初始化为0和n-1,选择i和j中最矮的一个进行++或-- 然后依次计算area的值找到max

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值