博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【leetcode】Container With Most Water
阅读量:5080 次
发布时间:2019-06-12

本文共 902 字,大约阅读时间需要 3 分钟。

题目描述:

Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpoints of line i is at (i, ai) and (i, 0). Find two lines, which together with x-axis forms a container, such that the container contains the most water.

Note: You may not slant the container.

解题思路:

这道题说白了就是选两个值中较小的一个\(min(a_i,a_j)\),然后乘以他们之间的间距\((i-j)\)的最大值.最简单的\(O(n^2)\)的遍历。但是我们可以采取贪心的算法,从两端开始不断选择较大的一侧组成新的container。

class Solution:    # @return an integer    def maxArea(self, height):        res = 0         l = len(height)        i = 0        j = l-1        while i < j:            t = min(height[i], height[j]) * (j-i)            if t > res:                res = t            if height[i] < height[j]:                i += 1            else:                j -= 1                    return res

转载于:https://www.cnblogs.com/MrLJC/p/4277033.html

你可能感兴趣的文章
Scrum 常见错误实践 之 过长的站会
查看>>
mac os命令参考
查看>>
maven打包上传到本地中央库
查看>>
winxp如何开启SNMP服务
查看>>
SQLAlchemy 增删改查 一对多 多对多
查看>>
char、布尔、赋值、算数运算符
查看>>
教育类APP开发现新增长,多款APP该如何突围?
查看>>
教育行业app开发新契机,在线教育要从B端出发
查看>>
打开3389
查看>>
React学习记录
查看>>
nginx常见内部参数,错误总结
查看>>
对象与类
查看>>
《奸的好人2》财色战场----笔记
查看>>
BZOJ 1834网络扩容题解
查看>>
bzoj1878
查看>>
【Vegas原创】Mysql绿色版安装方法
查看>>
IniHelper——INI操作辅助类
查看>>
Less:优雅的写CSS代码
查看>>
BZOJ 1007: [HNOI2008]水平可见直线
查看>>
并发编程 - 线程 - 1.互斥锁/2.GIL解释器锁/3.死锁与递归锁/4.信号量/5.Event事件/6.定时器...
查看>>