leetcode: Container With Most Water
2013-11-20 15:21
239 查看
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.
![](http://img.blog.csdn.net/20131120151552531?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYmluYXJ5X3NlYXJjaA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
那个O(n)的方法深深的刻在了我的脑子里,还有那几个字“从两头到中间”。既然有O(n)的方法那就想想吧。想了十几分钟想出来了。就是两头各有一个指针,哪个指的数字小就把那个指针向内移动。这样可以找到最大的体积。既然这样,就立马写了,然后返回最大的体积,看看leetcode的返回值是不是这个意思,submit solution,竟然看到了accepted。好吧,就这样。
..., 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.
思路
好吧,这道题一开始看,根本感觉莫名其妙,我不是说题目,我是说返回值:上面明明说找到两条线,而返回值却是一个int值?无奈点击了DISCUSS,可是发现并没有人在讨论这个问题,然后我就很轻松的选中了题目,然后右击->用Google搜索 "Container With Most Water"。好吧,我最初的目的确实很简单,但是无奈虽然只扫了一眼Google第一条结果:那个O(n)的方法深深的刻在了我的脑子里,还有那几个字“从两头到中间”。既然有O(n)的方法那就想想吧。想了十几分钟想出来了。就是两头各有一个指针,哪个指的数字小就把那个指针向内移动。这样可以找到最大的体积。既然这样,就立马写了,然后返回最大的体积,看看leetcode的返回值是不是这个意思,submit solution,竟然看到了accepted。好吧,就这样。
class Solution { public: int maxArea(vector<int> &height) { // IMPORTANT: Please reset any member data you declared, as // the same Solution instance will be reused for each test case. int lc=0; int rc=height.size()-1; int max_area=0; while(lc<rc) { int tmp_area=(rc-lc)*minint(height[lc],height[rc]); if(tmp_area>max_area) max_area=tmp_area; if(height[lc]<=height[rc]) lc++; else rc--; } return max_area; } inline int minint(int a,int b) { return a>b?b:a; } };
相关文章推荐
- [LeetCode] Container With Most Water, Solution
- leetcode--Container With Most Water
- 【LeetCode 11】Container With Most Water (Python)
- [Leetcode] Container With Most Water
- LeetCode解题报告--Container With Most Water
- LeetCode-011 Container With Most Water
- LeetCode 11 - Container With Most Water
- LeetCode_11_Container With Most Water
- leetcode - Container With Most Water
- LeetCode Container With Most Water
- LeetCode Container With Most Water
- [leetcode] Container With Most Water
- LeetCode 11: Container With Most Water
- LeetCode Online Judge 题目C# 练习 - Container With Most Water
- leetcode(1)container-with-most-water
- 【LeetCode】011 Container With Most Water
- 【leetcode】Container With Most Water
- LeetCode题解:Container With Most Water
- LeetCode (11)Container With Most Water
- leetcode-Container With Most Water