Skip to main content

Container with most water

You are given an integer array height of length n. There are n vertical lines drawn such that the two endpoints of the ith line are (i, 0) and (i, height[i]).

Find two lines that together with the x-axis form a container, such that the container contains the most water.

Return the maximum amount of water a container can store.

Notice that you may not slant the container.

Input: height = [1,8,6,2,5,4,8,3,7]

Output: 49

Explanation: 8 & 7 is considered. 7 is width & 7 is the max level of water. So, 7 * 7 = 49.

/**
* @param {number[]} height
* @return {number}
*/
var maxArea = function(height) {
let maxWater = 0;
let left = 0;
let right = height.length - 1;

while (left < right) {
const width = right - left;
const minHeight = Math.min(height[left], height[right]);

maxWater = Math.max(maxWater, width * minHeight);

if (height[left] < height[right]) {
left++;
} else {
right--;
}
}
return maxWater;
};