Skip to content

Instantly share code, notes, and snippets.

@aire-con-gas
Last active March 8, 2019 13:39
Show Gist options
  • Save aire-con-gas/9c7068dfa25406431008ce56a6ef51b9 to your computer and use it in GitHub Desktop.
Save aire-con-gas/9c7068dfa25406431008ce56a6ef51b9 to your computer and use it in GitHub Desktop.
num_of_islands.js
function dfs(grid, r, c) {
var nr = grid.length;
var nc = grid[0].length;
if (r < 0 || c < 0 || r >= nr || c >= nc || grid[r][c] === '0') {
return;
}
grid[r][c] = '0';
dfs(grid, r - 1, c);
dfs(grid, r + 1, c);
dfs(grid, r, c - 1);
dfs(grid, r, c + 1);
}
function numIslands(grid) {
if (typeof grid === 'undefined' || grid.length === 0) {
return;
}
var num_islands = 0;
var nr = grid.length;
var nc = grid[0].length;
for (var r = 0; r < nr; r++) {
for (var c = 0; c < nc; c++) {
if (grid[r][c] === '1') {
num_islands++;
dfs(grid, r, c);
}
}
}
return num_islands;
}
var g = [["1", "1", "1", "1", "0"], ["1", "1", "0", "1", "0"], ["1", "1", "0", "0", "0"], ["0", "0", "0", "0", "0"]];
console.log(numIslands(g));
</script>
<script id="jsbin-source-javascript" type="text/javascript">function dfs(grid, r, c) {
let nr = grid.length;
let nc = grid[0].length;
if (r < 0 || c < 0 || r >= nr || c >= nc || grid[r][c] === '0') {
return;
}
grid[r][c] = '0';
dfs(grid, r - 1, c);
dfs(grid, r + 1, c);
dfs(grid, r, c - 1);
dfs(grid, r, c + 1);
}
function numIslands(grid) {
if(typeof grid === 'undefined' || grid.length === 0) {
return;
}
let num_islands = 0;
let nr = grid.length;
let nc = grid[0].length;
for(let r = 0; r < nr; r++) {
for (let c = 0; c < nc; c++) {
if (grid[r][c] === '1') {
num_islands++;
dfs(grid, r, c);
}
}
}
return num_islands;
}
const g = [
["1","1","1","1","0"],
["1","1","0","1","0"],
["1","1","0","0","0"],
["0","0","0","0","0"]
];
console.log(numIslands(g));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment