Container With Most Water Leetcode Solution

In this post, you will know how 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 Solutions

One more thing to add, don’t directly look for the solutions, first try to solve the problems of Leetcode by yourself. If you find any difficulty after trying several times, then you can look for solutions.

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:

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

Container With Most Water Leetcode Solutions 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 Solutions 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 Solutions 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 BrokenProgrammers. This tutorial is only for Educational and Learning purposes.

NEXT: Regular Expression Matching Leetcode Solution

Leave a Reply

Your email address will not be published. Required fields are marked *