题解 | #岛屿数量#

岛屿数量

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

找到'1'的地方 然后判断其上下左右是不是为'1'(岛屿)

class Solution {
public:
    /**
     * 判断岛屿数量
     * @param grid char字符型vector<vector<>> 
     * @return int整型
     */
    void dfs(vector<vector<char> >& grid,int i,int j,int m,int n){
        grid[i][j]=0;  // 减枝
        // 判断上下左右是否为1
        if(i<m-1 && grid[i+1][j]=='1')  dfs(grid,i+1,j,m,n);
        if(i>0 && grid[i-1][j]=='1')  dfs(grid,i-1,j,m,n);
        if(j<n-1 && grid[i][j+1]=='1')  dfs(grid,i,j+1,m,n);
        if(j>0 && grid[i][j-1]=='1')  dfs(grid,i,j-1,m,n);
        
    }
    int solve(vector<vector<char> >& grid) {
        // write code here
        // dfs 深度搜索
        int result=0;
        int m = grid.size();
        if(m<=0) return 0;
        int n = grid[0].size();
        for(int i=0;i<m;++i){
            for(int j=0;j<n;++j){
                if(grid[i][j]=='1'){
                    result++;
                    dfs(grid,i,j,m,n); // 深度搜索
                }
            }
        }
        
        return result;
        
        
    }
};
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-24 13:36
点赞 评论 收藏
分享
点赞 评论 收藏
分享
小浪_Coding:找硬件测试,也可兼顾软测欧, 简历还可以的 ,注意排版,项目写的有条理一点, 然后个人技能多加点, 润色好简历之后就开始沟通海投了,深圳,东莞这边做硬件相关的公司还不少, 医疗类,仪器类的都可以尝试
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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