Solución
solution.tsTypeScript
function trapWater(heights: number[]): number {
let l_index = 0
let r_index = heights.length-1
let max_l = 0
let max_r = 0
let acc = 0
while(l_index<r_index){
max_l = Math.max(max_l,heights[l_index])
max_r = Math.max(max_r,heights[r_index])
if(heights[l_index]>=heights[r_index]){
r_index-=1
if(max_r>heights[r_index] && max_l>heights[r_index]){
acc+=Math.min(max_l,max_r)-heights[r_index]
}
}else if(heights[l_index]<heights[r_index]){
l_index+=1
if(max_r>heights[l_index] && max_l>heights[l_index]){
acc+=Math.min(max_l,max_r)-heights[l_index]
}
}
}
return acc
}
// No modificar: necesario para evaluar el resultado.
export { trapWater };1respuestas