1
var maxAreaOfIsland = function (grid) {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;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;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);23
result = Math.max(area, result);