题解 | #岛屿数量#

岛屿数量

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;
    }

};
全部评论

相关推荐

看到这个内容真是闹麻了。。。。。。现在有了AI以后很多人面试都会作弊吗?&nbsp;那对老老实实面试的人岂不是不公平....
程序员牛肉:公平那是对小孩子讲的童话故事,成年人的世界只有能不能接受失败的后果。 你要是能接受面试作弊被发现之后多家公司联合永久拉黑的后果,你就搞。
点赞 评论 收藏
分享
测试糕手手:社会第一课,随便吹牛逼,直接说四个月,别老实。老实人只会被欺负
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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