package Ġcom . leetcode Ċ Ċ // Ġhttps :// github . com / an top - dev / algorithm / issues / 3 2 2 Ċ class ĠP 6 9 5 Ġ{ ĊĠĠĠ Ġprivate Ġval Ġdy Ġ= Ġint ArrayOf ( 1 , Ġ- 1 , Ġ 0 , Ġ 0 ) ĊĠĠĠ Ġprivate Ġval Ġdx Ġ= Ġint ArrayOf ( 0 , Ġ 0 , Ġ- 1 , Ġ 1 ) ĊĊĠĠĠ Ġfun Ġmax Area Of Is land ( grid : ĠArray < IntArray >): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġmax Area Ġ= Ġ 0 ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġgrid . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( j Ġin Ġgrid [ i ]. indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġarea Ġ= Ġdfs ( grid , Ġi , Ġj ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( area Ġ> Ġmax Area ) Ġmax Area Ġ= Ġarea ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġmax Area ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdfs ( grid : ĠArray < IntArray >, Ġi : ĠInt , Ġj : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( i Ġ! in Ġgrid . indices ) Ġreturn Ġ 0 ĊĠĠĠĠĠĠĠ Ġif Ġ( j Ġ! in Ġgrid [ i ]. indices ) Ġreturn Ġ 0 ĊĠĠĠĠĠĠĠ Ġif Ġ( grid [ i ][ j ] Ġ== Ġ 0 ) Ġreturn Ġ 0 ĊĊĠĠĠĠĠĠĠ Ġgrid [ i ][ j ] Ġ= Ġ 0 Ġ// Ġë°© ë¬¸ íķľ ĠìĦ ¬ ìľ¼ë¡ľ Ġë³Ģê²½ ĊĊĠĠĠĠĠĠĠ Ġvar Ġarea Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġrepeat ( 4 ) Ġ{ Ġk Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġarea Ġ+= Ġdfs ( grid , Ġi Ġ+ Ġdy [ k ], Ġj Ġ+ Ġdx [ k ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġarea ĊĠĠĠ Ġ} Ċ } Ċ