11. Container With Most Water LeetCode Solution
In this guide we will provide 11. Container With Most Water LeetCode Solution with best time and space complexity. The solution to Container With Most Water problem is provided in various programming languages like C++, Java and python. This will be helpful for you if you are preparing for placements, hackathon, interviews or practice purposes. The solutions provided here are very easy to follow and with detailed explanations.
Table of Contents
- Problem Statement
- Container With Most Water solution in C++
- Container With Most Water soution in Java
- Container With Most Water solution Python
- Additional Resources
Problem Statement of Container With Most Water
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
Complexity Analysis
- Time Complexity: O(n)
- Space Complexity: O(1)
11. Container With Most Water LeetCode Solution in C++
class Solution {
public:
int maxArea(vector<int>& height) {
int ans = 0;
int l = 0;
int r = height.size() - 1;
while (l < r) {
const int minHeight = min(height[l], height[r]);
ans = max(ans, minHeight * (r - l));
if (height[l] < height[r])
++l;
else
--r;
}
return ans;
}
};
/* code provided by PROGIEZ */
11. Container With Most Water LeetCode Solution in Java
class Solution {
public int maxArea(int[] height) {
int ans = 0;
int l = 0;
int r = height.length - 1;
while (l < r) {
final int minHeight = Math.min(height[l], height[r]);
ans = Math.max(ans, minHeight * (r - l));
if (height[l] < height[r])
++l;
else
--r;
}
return ans;
}
}
// code provided by PROGIEZ
11. Container With Most Water LeetCode Solution in Python
class Solution:
def maxArea(self, height: list[int]) -> int:
ans = 0
l = 0
r = len(height) - 1
while l < r:
minHeight = min(height[l], height[r])
ans = max(ans, minHeight * (r - l))
if height[l] < height[r]:
l += 1
else:
r -= 1
return ans
#code by PROGIEZ
Additional Resources
- Explore all Leetcode problems solutions at Progiez here
- Explore all problems on Leetcode website here
Feel free to give suggestions! Contact Us