• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
村雨sup
自己选的路,跪着也要走完 XD
博客园    首页    新随笔    联系   管理    订阅  订阅
Leetcode 200. 岛屿数量
class Solution {
public:
    int numIslands(vector<vector<char>>& grid) {
        int nr = grid.size();
        if(nr == 0) return 0;
        int nc = grid[0].size();
        
        int ans = 0;
        for(int i=0;i < nr;i++){
            for(int j=0;j < nc;j++){
                if(grid[i][j] == '1'){
                    ans++;
                    dfs(grid,i,j);
                }
            }
        }
        return ans;
    }

    void dfs(vector<vector<char>>& grid,int i,int j){
        int nr = grid.size();
        int nc = grid[0].size();
        grid[i][j] = '0';
        if((i-1) >= 0 && grid[i-1][j] == '1') dfs(grid,i-1,j);
        if((j-1) >= 0 && grid[i][j-1] == '1') dfs(grid,i,j-1);
        if((i+1) < nr && grid[i+1][j] == '1') dfs(grid,i+1,j);
        if((j+1) < nc && grid[i][j+1] == '1') dfs(grid,i,j+1);
    }
};

dfs

posted on 2021-01-10 15:36  村雨sup  阅读(105)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3