[leetcode] Container With Most Water
来源:互联网 发布:华为手机知乎 编辑:程序博客网 时间:2024/06/06 18:06
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 linei 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.
Solution:
1. A stupid implementation, you can use two layer-for to traverse all the cases. Nevertheless, it's not a good method to save time. The time overhead is O(n^2):
int maxArea(vector<int> &height) {int maxarea = 0;for(int left = 0; left < height.size()-1; left++) {for (int right = left+1; right < height.size(); right++) {if(min(height[left], height[right]) * (right-left) > maxarea) {maxarea = min(height[left], height[right])*(right-left);}}}return maxarea;}
2. Use two pointer to scan the array from the header and tail respectively, where the time overhead is O(n).
int maxArea1(vector<int> &height) {int left = 0;int right = height.size() - 1;int maxArea = min(height[left], height[right]) * (right-left);while(left < right) {if(height[left] <= height[right]) {int i = left+1;while(height[i] <= height[left] && i < right) { ++i; }left = i;} else {int j = right-1;while(height[j] <= height[right] && j > left) { --j; }right = j;}maxArea = maxArea < min(height[left], height[right]) * (right-left) \? min(height[left], height[right]) * (right-left) : maxArea;}return maxArea;}
0 0
- LeetCode: 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: 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-Container With Most Water
- Container With Most Water leetcode
- LeetCode - 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:Container With Most Water
- 亲爱的这件衣服漂亮吗?
- Log4j.properties配置详解
- js/jquery去掉空格,换行示例代码
- [ArcGIS Engine][MFC/VS2008]判断图层是点图层、线图层还是面图层的方法
- IA 64 and IA-32 MTRRs
- [leetcode] Container With Most Water
- 【2015-1-15】STM32学习之GPIO
- 一些数据结构的初始化
- 进程查看命令 ps
- 转载:经典算法和OJ网站(开发者必备)
- 单元测试
- arcgis api for js访问速度慢
- Android仿IOS上拉下拉弹性效果 转自:http://blog.csdn.net/u014733374/article/details/42739345
- 《代码整洁之道》总结和感想