leetcode 200

来源:互联网 发布:企业文化 知乎 编辑:程序博客网 时间:2024/04/30 01:23
深度优先,仔细仔细仔细
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;};
原创粉丝点击