题解 | #岛屿数量#

岛屿数量

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

BFS宽度优先搜索

class Solution {
public:
    /**
     * 判断岛屿数量
     * @param grid char字符型vector<vector<>> 
     * @return int整型
     */
    void bfs(vector<vector<char> >& grid, int i, int j) {
        int dx[4] = {1, -1, 0, 0};
        int dy[4] = {0, 0, 1, -1};
        grid[i][j] = '#';
        for(int k = 0; k < 4; k++) {
            int ix, jx;
            ix = i + dx[k], jx = j + dy[k];
            if(ix >= 0 && ix < grid.size() && jx >= 0 && jx < grid[0].size() && grid[ix][jx] == '1') {
                bfs(grid, ix, jx);
            }
        }
    }

    int solve(vector<vector<char> >& grid) {
        // write code here
        int res = 0;
        for(int i = 0; i < grid.size(); i++)
            for(int j = 0; j < grid[0].size(); j++)
                if(grid[i][j] == '1') {
                    res++;
                    bfs(grid, i, j);
                }
        return res;
    }

};
全部评论

相关推荐

服从性笔试吗,发这么多笔,现在还在发。
蟑螂恶霸zZ:傻 x 公司,发两次笔试,两次部门匹配挂,
投递金山WPS等公司10个岗位 >
点赞 评论 收藏
分享
牛客5655:其他公司的面试(事)吗
点赞 评论 收藏
分享
球球别再泡了:坏,我单9要了14
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务