Given n non-negative integers a1, A2, ..., an, where each represents a point at coordinate (I, AI). n vertical lines is drawn such, the and the other endpoints of line I am at (i, AI) and (i, 0). Find lines, which together with X-axis forms a container, such that the container contains the most water.
Note:you may not slant the container.
I think this is a very tricky problem, if you do not understand the mathematical solution, the problem basically do not come out (poor lifting method will time out). And when you know the math solution, you think it's a simple question.
Class solution {public: int maxarea (Vector<int>& height) { int n = (int) Height.size (); int left = 0; int right = n - 1; int max_volume = 0; while (left < right) { int x_ais = right - left; int y_ais = height[left] < height[ right] ? height[left] : height[right]; if (Max_volume < x_ais * y_ais) { max_volume = x_ais * y_ais; } if (height[ Left] < height[right]) { left++; }else{ right--; } } return max_volume; }};
Leetcode--container with most water