A classical interview question
stackoverflow.com/questions/24414700/amazon-water-collected-between-towers jacquerie.github.io/google-foobar-post-mortem/
by Matthias
HTML
<pre></pre>
JavaScript
var a = [1, 5, 3, 7, 2];
log(a);
var water = 0;
$.each(a, function (key, i) {
log("a["+key+"] = "+i);
if (i > a[key + 1]) { //if next to right in array is bigger
log(" a["+key+"] = "+i+": right is smaller: "+a[key + 1]);
for (j = 1; j <= a.length - key; j++) { //number of remaining towers to the right
if (a[key+1 + j] >= i) { //if next next… tower is bigger than or equal to first tower
log(" a["+(key+1+j)+"] = "+a[key+1+j]+": is bigger than or equal to: "+i);
for (k = 1; k < 1+j; k++) {
water += a[key] - a[key + k];
}
}
}
}
});
console.log("Water: "+water);
function log(s) {
console.log(s);
$("pre").append(s+"\n");
}