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
Table of Contents
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:
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 Complexity | Space Complexity | |
C++ | O(n) | O(1) |
Java | O(n) | O(1) |
JavaScript | O(n) | O(1) |
Python | O(n) | O(1) |