🎉 One-stop destination for all your technical interview Preparation 🎉
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.
class Solution {
public:
int maxArea(vector<int>& height)
{
int mx = 0;
int n = height.size();
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
mx = max(mx, min(height[i], height[j]) * (j - i));
}
}
return mx;
}
};
class Solution {
public:
int maxArea(vector<int>& height)
{
int n = height.size();
int i = 0, j = n - 1;
int maxWater = 0;
while (i < j) {
maxWater = max(maxWater, (j - i) * min(height[i], height[j]));
if (height[i] < height[j])
i++;
else
j--;
}
return maxWater;
}
};