LeetCode OJ-- Container With Most Water
2024-09-02 14:20:23
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]则面积就更小了。所以这个漏掉是安全的。
最新文章
- JQ 队列
- Spring 中注入 properties 中的值
- sed 例子
- Cocos2d-X 2.2嵌入MFC的子窗口
- Windows 下 SVN 服务器配置
- 解析nodejs微信开发-2获取ticket
- Java自学手记——Java中的关键字
- 汉诺塔python3函数编写和过程分析
- 关于微信小程序切换获取不到元素的问题
- Nacos发布0.5.0版本,轻松玩转动态 DNS 服务
- Mysql绿色版安装和遇到的问题
- Django学习(6)配置静态文件
- Dreamweaver 2
- 组合数据类型,英文词频统计 python
- 2018-2019-2 20175230 实验三《Java面向对象程序设计》实验报告
- luogu1941 [NOIp2014]飞扬的小鸟 (dp)
- .Net Core配置文件读取整理
- Java泛型的PECS原则
- mysql 乱码解决方案
- nohup 命令(设置后台进程): appending output to ‘nohup.out’ 问题