leetcode11 Container With Most Water【挡板存水,双指针】【Python刷题】

44 篇文章 1 订阅
33 篇文章 0 订阅

因为是搜单调队列搜到这个题

这个就是误导我的博客http://www.cnblogs.com/Phantom01/p/5871977.html

想着单调队列想了两天,又综合了

单调栈优化dp:hdu1506Largest Rectangle in a Histogram &hdu1505city game dp

想了一下是否是单调栈优化,发现了单调队列和单调栈对数组末尾的处理是一样的,区别只是在于单调栈前面不出栈,单调队列

poj2823Sliding Window【单调队列经典题】leetcode239. Sliding Window Maximum【python刷题】

hdu1506是求直方图的最大面积,需要维护递增的单调栈,被pop出的是较大的,因为求的最大面积,肯定是两边的小。

后来对象看了题解肯定了我说双指针的大体思路,但是还是很纠结为啥这样的遍历确定能找到最优解??只是能从直观上推断出:因为是两个挡板,移动长挡板一定不是最优解 →_→

今天早上觉得这个题似曾相识,翻了一遍,发现了

面试算法——双指针的应用leetcode 42. Trapping Rain Water

还以为是一样的,纠结了半天,发现这个题是用上面的位置存水再见

class Solution(object):
    def maxArea(self, height):
        """
        :type height: List[int]
        :rtype: int
        """
        l=0
        r=len(height)-1
        ans=0
        while(l<r):
            ans=max(ans,(r-l)*min(height[l],height[r]))
            if(height[l]<height[r]):
                l=l+1
            else:
                r=r-1
        return ans



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值