https://oj.leetcode.com/problems/container-with-most-water/

不同高度的柱子排一列,两个柱子可以组成一个容器,求最大容积。

最直观的方法就是暴力,两层for循环,分别遍历头柱子和尾柱子。但是超时了

于是看了discuss,有O(n)的方法。

class Solution {
public:
int maxArea(vector<int> &height){
if(height.size()<)
return ;
if(height.size()==)
return min(height[],height[]); int maxAns = ;
int square = ;
int low = , high = height.size()-;
while(low<high)
{
square = min(height[low],height[high])*(high-low);
if(square>maxAns)
maxAns = square;
if(height[low]<=height[high])
low++;
else
high--;
} return maxAns;
}
};

证明的话如下:对于low 和high,当 height[low]<hight[high]的时候,low往前前进了一个,这个时候就相当于对 height[low],hight[high-1]没有检查,而如果height[high-1]比hieght[high]大,则还是以height(low)为准,但是宽度上减小了一个,所以面积小了,如果height[high-1]小于height[high]则面积就更小了。所以这个漏掉是安全的。

最新文章

  1. JQ 队列
  2. Spring 中注入 properties 中的值
  3. sed 例子
  4. Cocos2d-X 2.2嵌入MFC的子窗口
  5. Windows 下 SVN 服务器配置
  6. 解析nodejs微信开发-2获取ticket
  7. Java自学手记——Java中的关键字
  8. 汉诺塔python3函数编写和过程分析
  9. 关于微信小程序切换获取不到元素的问题
  10. Nacos发布0.5.0版本,轻松玩转动态 DNS 服务
  11. Mysql绿色版安装和遇到的问题
  12. Django学习(6)配置静态文件
  13. Dreamweaver 2
  14. 组合数据类型,英文词频统计 python
  15. 2018-2019-2 20175230 实验三《Java面向对象程序设计》实验报告
  16. luogu1941 [NOIp2014]飞扬的小鸟 (dp)
  17. .Net Core配置文件读取整理
  18. Java泛型的PECS原则
  19. mysql 乱码解决方案
  20. nohup 命令(设置后台进程): appending output to ‘nohup.out’ 问题

热门文章

  1. python2与python3的区别,以及注释、变量、常量与编码发展
  2. Python9-条件-定时器-队列-day40
  3. 动态规划、记忆化搜索:HDU1978-How many ways
  4. 《鸟哥的Linux私房菜》学习笔记(7)——grep及正则表达式
  5. 线性回归 python小样例
  6. easyui的tree基本属性
  7. cf975d Ghosts
  8. 32、详解Android shape的使用方法(转载)
  9. leetcode 【 Triangle 】python 实现
  10. 安装 Redis的Python客户端redis-py