Skip to main content

1254.js

/** ------------------------------------------------------------------------------
*
* 2023-04-06
* Number of Closed Islands
* https://leetcode.com/problems/number-of-closed-islands/
*
------------------------------------------------------------------------------ */
/**
* @param {number[][]} grid
* @return {number}
*/
var closedIsland = function (grid) {
for (let i = 0; i < grid.length; i++) {
for (let j = 0; j < grid[0].length; j++) {
if (grid[i][j]) continue;

let queue = [[i, j]],
closed = 1;

while (queue.length) {
let [x, y] = queue.shift();

if (grid[x][y] == 0) {
grid[x][y] = 2;
queue.push([x - 1, y], [x + 1, y], [x, y - 1], [x, y + 1]);
} else if (grid[x][y] == null) closed = 0;

console.log("queue", queue);
}

count += closed;
}
}
return count;
};

console.log(
closedIsland([
[1, 1, 1, 1, 1, 1, 1, 0],
[1, 0, 0, 0, 0, 1, 1, 0],
[1, 0, 1, 0, 1, 1, 1, 0],
[1, 0, 0, 0, 0, 1, 0, 1],
[1, 1, 1, 1, 1, 1, 1, 0],
]),
);