Analysis on “Container With Most Water ”
2014-12-05 13:54
459 查看
Container With Most Water Problem:
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.
Analysis:
The wooden barrel principle, the bucket of water storage depends on the shortest board. //木桶原理,水桶中的存水量取决于短板。step i: set two pointer istart and iend to point the current working min and max index of the array,
initialize them as: istart = 0, iend = height.size() - 1;
step ii. when the lower index istart is less than the higher index iend, move the "short
board" to gain the volume of the new container, likewise: the area = min(height[istart], height[iend]) * (iend - istart); otherwise, return the larger volume between the current max volume and the
volume of the new container;
step iii.do step ii till istart less than iend;
So the c++sourcecode:
#include <vector>//vector
using std::vector;
#include <limits.h>//INT_MIN
#include <windows.h>//min, max
int maxArea(vector<int> &height) {
int istart = 0, iend = height.size()-1;
int result = INT_MIN;
while (istart < iend) {
int area = min(height[istart], height[iend]) * (iend - istart);
result = max(result, area); // Error code: int reslut = max(result, area); redefinition the global variable as
a Local variable
if (height[istart] <= height[iend]) {
++istart;
}else {
--iend;
}
}
return result;
}
What I have learnt from this problem
when using global variable, you should be initialize it and must mind where you use it, use it correct. Don't redefinition it as a Local variable, never do it again;draw a mind map in your paper to think very clearly before you coding;
C++ allow program redefine the variable in the
inner scope that have already defined in the outer scope, so this is a trip when you have no idea about the mechanism.
相关文章推荐
- 11. Container With Most Water
- Leetcode: Container With Most Water
- LeetCode--Container With Most Water
- LeetCode 011 Container With Most Water *
- Container With Most Water
- [leetcode]Container With Most Water
- Leetcode#11 Container With Most Water
- 算法系列——Container With Most Water
- Container With Most Water - Leetcode
- 11. Container With Most Water
- Container With Most Water
- Leetcode 11[medium]--Container With Most Water
- leetcode:Container With Most Water
- LeetCode:Container With Most Water
- Container With Most Water
- 【leetcode】Container With Most Water
- 【Leetcode】Container with most water
- 【LeetCode】Container With Most Water
- Container With Most Water-Leetcode OJ Problem 11
- LeetCode---Container with most water