DFS
var numIslands = function(grid) {
let m=grid.length;
if(m==0) return 0;
let n=grid[0].length;
let direction=[[-1,0],[0,-1],[1,0],[0,1]];
let count=0;
for(var i=0;i<m;i++){
for(var j=0;j<n;j++){
if(grid[i][j]=='1'){
dfs(grid,i,j);
count++;
}
}
}
function dfs(grid,i,j){
if(i<0||i>=m||j<0||j>=n||grid[i][j]==0) return ;
grid[i][j]=0;
for(var k=0;k<4;k++) dfs(grid,i+direction[k][0],j+direction[k][1]);
}
return count;
};