1
+ // Runtime: 135 ms (Top 39.40%) | Memory: 45 MB (Top 74.80%)
1
2
var maxAreaOfIsland = function ( grid ) {
2
- let result = 0 ;
3
- const M = grid . length ;
4
- const N = grid [ 0 ] . length ;
5
- const isOutGrid = ( m , n ) => m < 0 || m >= M || n < 0 || n >= N ;
6
- const island = ( m , n ) => grid [ m ] [ n ] === 1 ;
7
- const dfs = ( m , n ) => {
8
- if ( isOutGrid ( m , n ) || ! island ( m , n ) ) return 0 ;
3
+ let result = 0 ;
4
+ const M = grid . length ;
5
+ const N = grid [ 0 ] . length ;
6
+ const isOutGrid = ( m , n ) => m < 0 || m >= M || n < 0 || n >= N ;
7
+ const island = ( m , n ) => grid [ m ] [ n ] === 1 ;
8
+ const dfs = ( m , n ) => {
9
+ if ( isOutGrid ( m , n ) || ! island ( m , n ) ) return 0 ;
9
10
10
- grid [ m ] [ n ] = 'X' ;
11
- const top = dfs ( m - 1 , n ) ;
12
- const bottom = dfs ( m + 1 , n ) ;
13
- const left = dfs ( m , n - 1 ) ;
14
- const right = dfs ( m , n + 1 ) ;
15
- return 1 + top + bottom + left + right ;
16
- } ;
11
+ grid [ m ] [ n ] = 'X' ;
12
+ const top = dfs ( m - 1 , n ) ;
13
+ const bottom = dfs ( m + 1 , n ) ;
14
+ const left = dfs ( m , n - 1 ) ;
15
+ const right = dfs ( m , n + 1 ) ;
16
+ return 1 + top + bottom + left + right ;
17
+ } ;
17
18
18
- for ( let m = 0 ; m < M ; m ++ ) {
19
- for ( let n = 0 ; n < N ; n ++ ) {
20
- if ( ! island ( m , n ) ) continue ;
21
- const area = dfs ( m , n ) ;
19
+ for ( let m = 0 ; m < M ; m ++ ) {
20
+ for ( let n = 0 ; n < N ; n ++ ) {
21
+ if ( ! island ( m , n ) ) continue ;
22
+ const area = dfs ( m , n ) ;
22
23
23
- result = Math . max ( area , result ) ;
24
- }
25
- }
26
- return result ;
24
+ result = Math . max ( area , result ) ;
25
+ }
26
+ }
27
+ return result ;
27
28
} ;
0 commit comments