import Ġjava . util .* Ċ Ċ // ç»Ļ å®ļ Ġn Ġä¸ª éĿŀ è´Ł æķ´æķ° è¡¨ç¤º æ¯ıä¸ª å®½åº¦ ä¸º Ġ 1 ĠçļĦ æŁ ± åŃĲ çļĦ é«ĺåº¦ åĽ¾ ï¼Į è®¡ç®Ĺ æĮī æŃ¤ æİĴ åĪĹ çļĦ æŁ ± åŃĲ ï¼Į ä¸ĭ éĽ ¨ ä¹ĭåĲİ èĥ½ æİ¥ å¤ļå°ĳ éĽ ¨ æ°´ ãĢĤ Ċ // Ċ // Ġ Ċ // Ċ // Ġ ç¤ºä¾ĭ Ġ 1 ï¼ļ Ġ Ċ // Ċ // Ġ Ċ // Ċ // Ġ Ċ // è¾ĵåħ¥ ï¼ļ height Ġ= Ġ[ 0 , 1 , 0 , 2 , 1 , 0 , 1 , 3 , 2 , 1 , 2 , 1 ] Ċ // è¾ĵåĩº ï¼ļ 6 Ċ // è§£éĩĬ ï¼ļ ä¸ĬéĿ¢ æĺ¯ çĶ± æķ°ç»Ħ Ġ[ 0 , 1 , 0 , 2 , 1 , 0 , 1 , 3 , 2 , 1 , 2 , 1 ] Ġè¡¨ç¤º çļĦ é«ĺåº¦ åĽ¾ ï¼Į åľ¨ è¿Ļç§į æĥħåĨµä¸ĭ ï¼Į åı¯ä»¥ æİ¥ Ġ 6 Ġä¸ª åįķä½į çļĦ éĽ ¨ æ°´ ï¼Ī èĵĿ èī² éĥ¨åĪĨ è¡¨ç¤º éĽ ¨ æ°´ ï¼īãĢĤ Ġ Ċ // Ġ Ċ // Ċ // Ġ ç¤ºä¾ĭ Ġ 2 ï¼ļ Ġ Ċ // Ċ // Ġ Ċ // è¾ĵåħ¥ ï¼ļ height Ġ= Ġ[ 4 , 2 , 0 , 3 , 2 , 5 ] Ċ // è¾ĵåĩº ï¼ļ 9 Ċ // Ġ Ċ // Ċ // Ġ Ċ // Ċ // ĠæıĲ ç¤º ï¼ļ Ġ Ċ // Ċ // Ġ Ċ // Ġn Ġ== Ġheight . length Ġ Ċ // Ġ 0 Ġ<= Ġn Ġ<= Ġ 3 Ġ* Ġ 1 0 4 Ġ Ċ // Ġ 0 Ġ<= Ġheight [ i ] Ġ<= Ġ 1 0 5 Ġ Ċ // Ġ Ċ // ĠRelated ĠTop ics Ġ æłĪ Ġ æķ°ç»Ħ Ġ åıĮ æĮĩéĴĪ Ġ åĬ¨æĢģ è§Ħ åĪĴ Ġ Ċ // ĠðŁĳį Ġ 2 4 2 4 ĠðŁĳ İ Ġ 0 ĊĊ Ċ // leetcode Ġsubmit Ġregion Ġbegin ( Pro hibit Ġmodification Ġand Ġdeletion ) Ċ class ĠSolution Ġ{ ĊĠĠĠ Ġfun Ġtrap ( height : ĠInt Array ): ĠInt Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// æĸ¹æ³ķ ä¸Ģ Ġ åıĮ æĮĩéĴĪ æļ´ åĬĽ çł´ è§£ ĊĠĠĠĠĠĠĠ Ġvar Ġres Ġ= 0 ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 1 Ġuntil Ġheight . size - 1 ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġleft Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġright Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( j Ġin Ġi - 1 Ġdown To Ġ 0 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġleft Ġ= ĠMath . max ( left , height [ j ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( k Ġin Ġi + 1 Ġuntil Ġheight . size ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġright Ġ= ĠMath . max ( right , height [ k ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// åıĮ æĮĩéĴĪ æľĢå°ı é«ĺåº¦ Ġ è¯´æĺİ èĥ½ æİ¥ ä½ı éĽ ¨ æ°´ æľĢå°ı é«ĺåº¦ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġheight Min Ġ= ĠMath . min ( left , right ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( height Min Ġ> Ġheight [ i ]){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// è®¡ç®Ĺ éĿ¢ ç§¯ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġres Ġ= Ġres Ġ+ Ġheight Min - height [ i ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġres ĊĊĠĠĠĠĠĠĠ Ġ// æĸ¹æ³ķ äºĮ Ġä½¿çĶ¨ æłĪ Ġ åĪ©çĶ¨ æłĪ æĿ¥ åŃĺåĤ¨ å¯¹åºĶ éģįåİĨ çļĦ æķ°ç»Ħ ä¸ĭ æłĩ Ġå½ĵåīį ä¸ĭ æłĩ åĢ¼ å°ı äºİ æłĪ é¡¶ åħĥç´ł åĢ¼ ï¼Į åĪĻ åħ¥ æłĪ ï¼Į ç§»åĬ¨ æĮĩéĴĪ ç»§ç»Ń éģįåİĨ ãĢĤ ï¼Ī èĥ½å¤Ł ç§¯ æ°´ ï¼ī ĊĠĠĠĠĠĠĠ Ġ// Ġå½ĵåīį ä¸ĭ æłĩ åĢ¼ å¤§äºİ æłĪ é¡¶ åħĥç´ł ï¼Į åĪĻ åĩº æłĪ è®¡ç®Ĺ ĊĠĠĠĠĠĠĠ Ġvar Ġstack Ġ= ĠLinkedList < Int >() ĊĊĠĠĠĠĠĠĠ Ġvar Ġres Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġ// å½ĵåīį éģįåİĨ ä¸ĭ æłĩ ĊĠĠĠĠĠĠĠ Ġvar Ġcurr Index Ġ= Ġ 0 ĊĊĠĠĠĠĠĠĠ Ġwhile Ġ( curr Index Ġ< Ġheight . size ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// å½ĵåīį åĢ¼ å¤§äºİ æłĪ é¡¶ åħĥç´ł Ġ è¯´æĺİ åı¯ä»¥ ç§¯ æ°´ Ġ åıĸ åĩº è®¡ç®Ĺ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile (! stack . isEmpty () Ġ&& Ġheight [ curr Index ] Ġ> Ġheight [ stack . peek ()]) { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġtemp Height Ġ= Ġheight [ stack . remove First ()] ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( stack . isEmpty ()) Ġbreak ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// èİ·åıĸ å®½åº¦ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġwidth Ġ= Ġcurr Index Ġ- Ġstack . peek () Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// è®¡ç®Ĺ éĿ¢ ç§¯ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// èİ·åıĸ é«ĺåº¦ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġm Height Ġ= ĠMath . min ( height [ stack . peek ()], height [ curr Index ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// è®¡ç®Ĺ éĿ¢ ç§¯ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġres Ġ+= Ġwidth Ġ* Ġ( m Height Ġ- Ġtemp Height ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ä¿ĿåŃĺ ä¸ĭ æłĩ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstack . add First ( curr Index ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurr Index ++ ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġres ĊĊĠĠĠ Ġ} Ċ } Ċ // leetcode Ġsubmit Ġregion Ġend ( Pro hibit Ġmodification Ġand Ġdeletion ) Ċ