mirror of
https://github.com/TheAlgorithms/C
synced 2025-04-23 05:52:21 +03:00
28 lines
671 B
C
28 lines
671 B
C
// Fucntion to calculate min of values a and b
|
|
int min(int a, int b) { return ((a < b) ? a : b); }
|
|
|
|
// Two pointer approach to find maximum container area
|
|
int maxArea(int *height, int heightSize)
|
|
{
|
|
// Start with maximum container width
|
|
int start = 0;
|
|
int end = heightSize - 1;
|
|
int res = 0;
|
|
|
|
while (start < end)
|
|
{
|
|
// Calculate current area by taking minimum of two heights
|
|
int currArea = (end - start) * min(height[start], height[end]);
|
|
|
|
if (currArea > res)
|
|
res = currArea;
|
|
|
|
if (height[start] < height[end])
|
|
start = start + 1;
|
|
else
|
|
end = end - 1;
|
|
}
|
|
|
|
return res;
|
|
}
|