deno.land / x / masx200_leetcode_test@10.6.5 / number-of-closed-islands / index.ts
1234567891011121314151617181920212223242526272829303132function closedIsland(grid: number[][]): number { const m = grid.length; const n = grid[0].length; let res = 0; grid.forEach((a, i) => a.forEach((v, j) => { if (v === 0) { res += Number(dfs(i, j)); } }) ); function dfs(i: number, j: number): boolean { if (i < 0 || j < 0 || i >= m || j >= n) { return false; } if (grid[i][j]) return true; grid[i][j] = 1;
return [ [i - 1, j], [i, j + 1], [i + 1, j], [i, j - 1], ] .map((v) => dfs(v[0], v[1])) .reduce((a, v) => a && v); }
return res;}export default closedIsland;
Version Info