题解 | #岛屿数量#

岛屿数量

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

class Solution {
public:
    /**
     * 判断岛屿数量
     * @param grid char字符型vector<vector<>> 
     * @return int整型
     */
    int solve(vector<vector<char> >& grid) {
        // write code here
        if(grid.empty()||grid[0].empty()){
            return 0;
        }
        vector<vector<bool>> visted(grid.size(),vector<bool>(grid[0].size(),false));
        int count = 0;
        for(int i = 0; i < grid.size(); i++){
            for(int j = 0; j < grid[i].size(); j++){
                if(grid[i][j]=='1'&&!visted[i][j]){
                    count++;
                    dfs(grid, i, j, visted);
                }
            }
        }
        return count;
    }

    void dfs(vector<vector<char> >& grid, int r, int c, vector<vector<bool>>& visted){
        if(r < 0 || r >= grid.size() || c < 0 || c >= grid[0].size() || grid[r][c] == '0' || visted[r][c]){
            return;
        }
        visted[r][c] = true;
        dfs(grid, r+1, c, visted);
        dfs(grid, r-1, c, visted);
        dfs(grid, r, c+1, visted);
        dfs(grid, r, c-1, visted);
    }
};
全部评论

相关推荐

10-13 12:53
已编辑
湖北工业大学 前端工程师
小海c:包装一下,第一个感觉是字节青训营的那个,后面那个是黑马的
点赞 评论 收藏
分享
10-31 13:04
南华大学 Java
嵌入式的小白:很多面试,面试前不会去打扰cto的,但一般cto不会在这些小事上刷人,只能说这个cto比较操心,啥重要不重要,紧急不紧急的,估计都会过问,平淡看待吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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