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;
    }
};
全部评论

相关推荐

头像
04-09 14:29
Java
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务