Container With Most Water LeetCode Solution

Last updated on January 5th, 2025 at 01:13 am

Here, we see a Container With Most Water Leetcode Solution. This Leak Code problem is solved in many programming languages, such as C++, Java, JavaScript, Python, etc., with different approaches.

List of all LeetCode Solution

Topics

Array, Two-Pointers

Companies

Bloomberg

Level of Question

Medium

Container With Most Water LeetCode Solution

Container With Most Water LeetCode Solution

1. Problem Statement

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.

Example 1:

question 11

Input: height = [1,8,6,2,5,4,8,3,7]
Output: 49
Explanation: The above vertical lines are represented by array [1,8,6,2,5,4,8,3,7]. In this case, the max area of water (blue section) the container can contain is 49.

Example 2:
Input: height = [1,1]
Output: 1

2. Coding Pattern Used in Solution

The coding pattern used in this code is Two Pointers. The algorithm uses two pointers (left and right) to traverse the array from both ends, narrowing the search space based on the conditions. This pattern is commonly used to solve problems involving arrays or strings where you need to optimize the solution by reducing the search space.

3. Code Implementation in Different Languages

3.1 Container With Most Water C++

class Solution {
public:
    int maxArea(vector<int>& height) {
        int left = 0;
        int right = height.size() - 1;
        int maxArea = 0;
        while (left < right) {
            int currentArea = min(height[left], height[right]) * (right - left);
            maxArea = max(maxArea, currentArea);
            if (height[left] < height[right]) {
                left++;
            } else {
                right--;
            }
        }
        return maxArea;
    }
};

3.2 Container With Most Water Java

class Solution {
    public int maxArea(int[] height) {
        int left = 0;
        int right = height.length - 1;
        int maxArea = 0;
        while (left < right) {
            int currentArea = Math.min(height[left], height[right]) * (right - left);
            maxArea = Math.max(maxArea, currentArea);
            if (height[left] < height[right]) {
                left++;
            } else {
                right--;
            }
        }
        return maxArea;
    }
}

3.3 Container With Most Water JavaScript

var maxArea = function(height) {
    let ans = 0, i = 0, j = height.length-1
    while (i < j) {
        ans = Math.max(ans, Math.min(height[i], height[j]) * (j - i))
        height[i] <= height[j] ? i++ : j--
    }
    return ans    
};

3.4 Container With Most Water Python

class Solution(object):
    def maxArea(self, height):
        left = 0
        right = len(height) - 1
        maxArea = 0
        while left < right:
            currentArea = min(height[left], height[right]) * (right - left)
            maxArea = max(maxArea, currentArea)
            if height[left] < height[right]:
                left += 1
            else:
                right -= 1
        return maxArea

4. Time and Space Complexity

Time ComplexitySpace Complexity
C++O(n)O(1)
JavaO(n)O(1)
JavaScriptO(n)O(1)
PythonO(n)O(1)
Scroll to Top