VG
Size: a a a
VG
LV
LV
LV
С
LV
LV
LV
С
int l = height.length;
if (l < 3) {
return 0;
}
int i = 0;
int total = 0;
while (i < l - 2) {
if (height[i + 1] >= height[i]) {
i++;
continue;
}
int left = height[i];
int sum = height[i + 1];
int max = sum;
int maxPossible = 0;
int maxI = i;
for (int j = i + 2; j < l; j++) {
if (height[j] > left) {
maxPossible = (j - i - 1) * left - sum;
maxI = j - 1;
break;
}
if (height[j] >= max) {
max = height[j];
maxPossible = (j - i - 1) * max - sum;
maxI = j - 1;
}
sum += height[j];
}
total += maxPossible;
i = maxI + 1;
}
return total;