-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcontainer-most-water.c
36 lines (35 loc) · 972 Bytes
/
container-most-water.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
double min(double a, double b) {
return a<b ? a : b;
}
int maxArea(int* height, int heightSize){
int lpointer = 0;
int rpointer = heightSize - 1;
int lhighest = 0;
int rhighest = 0;
int area = 0;
int maximum = 0;
while (rpointer > lpointer) {
if (height[lpointer] > lhighest || height[rpointer] > rhighest) {
area = min(height[lpointer], height[rpointer]) * abs(rpointer - lpointer);
}
if (area > maximum) {
maximum = area;
}
if (height[lpointer] > lhighest) {
lhighest = height[lpointer];
}
if (height[rpointer] > rhighest) {
rhighest = height[rpointer];
}
if (height[lpointer] > height[rpointer]) {
rpointer--;
}
else if (height [lpointer] < height[rpointer]) {
lpointer++;
} else {
lpointer++;
rpointer--;
}
}
return maximum;
}