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],
]),
);