题解 | #岛屿数量#

岛屿数量

http://www.nowcoder.com/practice/0c9664d1554e466aa107d899418e814e

找到'1'的地方 然后判断其上下左右是不是为'1'(岛屿)

class Solution {
public:
    /**
     * 判断岛屿数量
     * @param grid char字符型vector<vector<>> 
     * @return int整型
     */
    void dfs(vector<vector<char> >& grid,int i,int j,int m,int n){
        grid[i][j]=0;  // 减枝
        // 判断上下左右是否为1
        if(i<m-1 && grid[i+1][j]=='1')  dfs(grid,i+1,j,m,n);
        if(i>0 && grid[i-1][j]=='1')  dfs(grid,i-1,j,m,n);
        if(j<n-1 && grid[i][j+1]=='1')  dfs(grid,i,j+1,m,n);
        if(j>0 && grid[i][j-1]=='1')  dfs(grid,i,j-1,m,n);
        
    }
    int solve(vector<vector<char> >& grid) {
        // write code here
        // dfs 深度搜索
        int result=0;
        int m = grid.size();
        if(m<=0) return 0;
        int n = grid[0].size();
        for(int i=0;i<m;++i){
            for(int j=0;j<n;++j){
                if(grid[i][j]=='1'){
                    result++;
                    dfs(grid,i,j,m,n); // 深度搜索
                }
            }
        }
        
        return result;
        
        
    }
};
全部评论

相关推荐

想回学校的华夫饼不愿...:全是ppt大赛
点赞 评论 收藏
分享
最近看到华为台风天还让员工上班,感觉近些年华为的风评都不咋样了我投了华为已经二面了,不知道能不能进入到华为,有点迷了
嵌入式劝退第一人:华为风评一直没好过,但每年也依然是一大批应届生的梦中情司,不冲突的。要我说,华为才是真的体面厂,说你在华为工作,身边的人,长辈什么的谁不说你一声牛逼
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务