104 milli secs过大集合,时间复杂度为O(n)
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.
class Solution { public: int maxArea(vector<int> &height) { // Start typing your C/C++ solution below // DO NOT write int main() function if(height.size() < 2) return 0; int i = 0; int j = height.size() - 1; int area = 0; int max = 0 ; while(i < j) { if(height[i] < height[j]) { area = height[i] * (j - i); if(area > max) max = area; i ++ ; } else { area = height[j] * (j - i); if(area > max) max = area; j -- ; } } return max; } };