深度优先,仔细仔细仔细
var numislands1 = function(grid){
//深度优先
arrl=[];
count=0;
n=grid.length;
if(n==0){
return 0;
}
m=grid[0].length;
for(var i=0;i<n;i++) {
arrl[i]=[];
for(var j=0;j<m;j++){
arrl[i][j]=0;
}
}
function check(i,j){
if(i<n && i>=0 && j>=0 && j<m ){
return true;
}else{
return false;
}
}
function search(i,j,p){
if(check(i-1,j) && grid[i-1][j]=='1' && arrl[i-1][j]==0 ){
arrl[i-1][j]=p;
search(i-1,j,p);
}
if(check(i,j-1) && grid[i][j-1]=='1' && arrl[i][j-1]==0 ){
arrl[i][j-1]=p;
search(i,j-1,p);
}
if(check(i+1,j) && grid[i+1][j]=='1' && arrl[i+1][j]==0 ){
arrl[i+1][j]=p;
search(i+1,j,p);
}
if(check(i,j+1) && grid[i][j+1]=='1' && arrl[i][j+1]==0 ){
arrl[i][j+1]=p;
search(i,j+1,p);
}
}
for(var i=0;i<grid.length;i++){
for(var j=0;j<grid[0].length;j++){
if(grid[i][j]=='1' && arrl[i][j]==0){
count++;
arrl[i][j]=count;
search(i,j,count);
}
}
}
return count;
};