Skip to content
Programmingoneonone
Programmingoneonone
  • Home
  • CS Subjects
    • Internet of Things (IoT)
    • Digital Communication
    • Human Values
  • Programming Tutorials
    • C Programming
    • Data structures and Algorithms
    • 100+ Java Programs
    • 100+ C Programs
  • HackerRank Solutions
    • HackerRank Algorithms Solutions
    • HackerRank C problems solutions
    • HackerRank C++ problems solutions
    • HackerRank Java problems solutions
    • HackerRank Python problems solutions
  • Work with US
Programmingoneonone
Programmingoneonone

Leetcode container with most water problem solution

YASH PAL, 31 July 2024

In this Leetcode container with the most water problem solutions, we have 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 are at (i, ai) and (i, 0). we need to find two lines, which together with the x-axis form a container, such that the container contains the most water.

Leetcode container with most water problem solution

Problem solution in Python.

class Solution:
    def maxArea(self, height: List[int]) -> int:
        largest = 0
        l, r = 0, len(height) - 1
        while l < r:
            area = (r- l) * min(height[l], height[r])
            largest = max(largest, area)
            if height[l] < height[r]:
                l += 1
            else:
                r -= 1
        return largest

Problem solution in Java.

public class Solution {
public int maxArea(int[] height) {
    int maxarea=0;
    int temparea=0;
    int m=0,n=height.length-1;
    while(m!=n){
        if(height[m]<height[n]){
            temparea=height[m]*(n-m);
            m++;
        }
        else{
            temparea=height[n]*(n-m);
            n--;
        }
        if(maxarea<temparea) maxarea=temparea;
    }
    return maxarea;
}
}

Problem solution in C++.

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

Problem solution in C.

int min(int a, int b) {
    return((a < b) ? a : b);
}
int maxArea(int* height, int heightSize) {
    int maxArea=0, area;
    int i, j, w, h;
    
    for (i = 0, j = heightSize-1; i < j; ) {
        h = min(height[j], height[i]);
        w = j-i;
        area = h * w;
        maxArea = (area > maxArea) ? area : maxArea;
        (height[i] > height[j]) ? j-- : i++; 
    }
    return(maxArea);
}

coding problems solutions

Post navigation

Previous post
Next post

Related website

The Computer Science

Pages

  • About US
  • Contact US
  • Privacy Policy

Programing Practice

  • C Programs
  • java Programs

HackerRank Solutions

  • C
  • C++
  • Java
  • Python
  • Algorithm

Other

  • Leetcode Solutions
  • Interview Preparation

Programming Tutorials

  • DSA
  • C

CS Subjects

  • Digital Communication
  • Human Values
  • Internet Of Things
  • YouTube
  • LinkedIn
  • Facebook
  • Pinterest
  • Instagram
©2025 Programmingoneonone | WordPress Theme by SuperbThemes