package Ġcom . leetcode Ċ Ċ // Ġhttps :// github . com / an top - dev / algorithm / issues / 3 1 7 Ċ class ĠP 4 2 Ġ{ ĊĠĠĠ Ġfun Ġtrap ( height : ĠInt Array ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġwater Ġ= Ġ 0 ĊĊĠĠĠĠĠĠĠ Ġvar Ġl Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġvar Ġr Ġ= Ġheight . last Index ĊĠĠĠĠĠĠĠ Ġvar Ġprev Height Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġwhile Ġ( l Ġ< Ġr ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġh Ġ= Ġmin Of ( height [ l ], Ġheight [ r ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( h Ġ> Ġprev Height ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġl Ġ+ Ġ 1 Ġuntil Ġr ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( height [ i ] Ġ< Ġh ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwater Ġ+= Ġh Ġ- Ġheight [ i ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheight [ i ] Ġ= Ġh ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprev Height Ġ= Ġh ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( height [ l ] Ġ< Ġheight [ r ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġl ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( height [ l ] Ġ> Ġheight [ r ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr -- ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġl ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr -- ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġwater ĊĠĠĠ Ġ} Ċ } Ċ