RainWaterTrapOptimal

Run Settings
LanguageJavaScript
Language Version
Run Command
var trap = function(heights) { let total = 0; let p1 = 0; let p2 = heights.length-1; let maxR = 0; let maxL = 0; if (heights.length < 3) { return 0; } for (let i = 0; i < heights.length-1; i++) { if (heights[p1] <= heights[p2]) { if (heights[p1] > maxL) { maxL = heights[p1]; } else { total += maxL - heights[p1]; } p1++; } else { if (heights[p2] > maxR) { maxR = heights[p2]; } else { total += maxR - heights[p2]; } p2--; } } console.log(total); return total; }; //trap([0,1,0,2,1,0,3,1,0,1,2]); //8 //trap([0,1,0,2,1,0,1,3,2,1,2,1]); //6 //trap([5,4,1,2]); //1 trap([6,4,2,0,3,2,0,3,1,4,5,3,2,7,5,3,0,1,2,1,3,4,6,8,1,3]); //83
Editor Settings
Theme
Key bindings
Full width
Lines