OneCompiler

Trapping Rain Water by nitin

229

let h =[4,2,0,3,2,5];
let stack =[];
let water =0;
for(let i =0;i<h.length;i++)
{
while(stack.length>0 && h[i]>h[stack[stack.length-1]])
{
let top = stack.pop();
if(stack.length === 0)
{
break;
}
let dis = i - stack[stack.length-1]-1;
let minhigh = Math.min(h[i],h[stack[stack.length-1]]) - h[top];
water += minhigh*dis;
}
stack.push(i);
}
console.log(stack)
console.log(water)