Container With Most Water Leetcode Solution

In this post, we are going to solve the Container With Most Water Leetcode Solution problem of Leetcode. This Leetcode problem is done in many programming languages like C++, Java, and Python.

Container With Most Water Leetcode Solution
Container With Most Water Leetcode Solution

Problem

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:Container With Most Water Leetcode Solution

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

Constraints:

  • n == height.length
  • 2 <= n <= 105
  • 0 <= height[i] <= 104

Now, lets see the leetcode solution of Container With Most Water Leetcode Solution.

 Container With Most Water Leetcode Solution in Python

class Solution:
    def maxArea(self, height: List[int]) -> int:
        p1 = 0  
        p2 = len(height) - 1 
        max_area = 0
        while p1 != p2:
            if height[p1] > height[p2]:
                area = height[p2] * (p2 - p1) 
                p2 -= 1 
            else:
                area = height[p1] * (p2 - p1)
                p1 += 1
            if area > max_area: max_area = area 
        return max_area

Container With Most Water Leetcode Solution in CPP

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

Container With Most Water Leetcode Solution in Java

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

Note: This problem Container With Most Water is generated by Leetcode but the solution is provided by Chase2learn This tutorial is only for Educational and Learning purposes.

NEXT: Integer to Roman Leetcode Solution

Sharing Is Caring

Leave a Comment