JSFiddle - React, Tailwind, and code Playground
by davinel
JavaScript
//var array = [ 1, 2, 3, 2, 5, 3, 4 ];
//var array = [2,5,1,2,3,4,7,7,6];
var array = [2,5,1,3,1,2,1,7,7,6];
var length = array.length;
var elem = null;
var start = [];
var end = [0];
var count = 0;
var volume = 0;
var tempVolume = 0;
var gapLenght = 0;
var i = 1;
if(array[0] > array[1]) {
start[0] = 0;
}
else {
start[0] = 1;
i++;
}
for ( ; i < length ;i++ ) {
if(array[i] >= array[end[count]]) {
end[count] = i;
if(array[i] >= array[start[count]]) {
count++;
end[count] = i + 1;
start[count] = i;
}
}
}
for (var i = 0; i < end.length; i++) {
tempVolume = 0;
for(var j = start[i]+1; j < end[i]; j++) {
tempVolume = tempVolume + array[j];
}
gapLenght = end[i] - start[i] - 1;
if(array[end[i]] > array[start[i]]) {
volume = volume + gapLenght*array[start[i]] - tempVolume;
}
else {
volume = volume + gapLenght*array[end[i]] - tempVolume;
}
}
alert(volume);