NC109 #岛屿数量#

岛屿数量

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

最基础的DFS了。

lass Solution {
public:
    void dfs(vector<vector<char> >& grid, int i, int j, int w, int h)
    {
        grid[i][j] = '0';
        if(grid[i - 1][j] == '1' && i - 1 >= 0) dfs(grid, i - 1, j, w, h);
        if(grid[i + 1][j] == '1' && i + 1 < w) dfs(grid, i + 1, j, w, h);
        if(grid[i][j - 1] == '1' && j - 1 >= 0) dfs(grid, i, j - 1, w, h);
        if(grid[i][j + 1] == '1' && j + 1 < h) dfs(grid, i, j + 1, w, h);
    }
    int solve(vector<vector<char> >& grid) {
        int w = grid.size(), h = grid[0].size(), count = 0;
        if(w == 0) return 0;
        for(int i = 0; i < w; i++)
            for(int j = 0; j < h; j++)
                if(grid[i][j] == '1')
                    count++, dfs(grid, i, j, w, h);
        return count;
    }
};
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-03 17:30
点赞 评论 收藏
分享
仁者伍敌:难怪小公司那么挑剔,让你们这些大佬把位置拿了
点赞 评论 收藏
分享
uu们,拒offer时hr很生气怎么办我哭死
爱睡觉的冰箱哥:人家回收你的offer,或者oc后没给你发offer的时候可不会愧疚你,所以你拒了也没必要愧疚他。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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