当前位置: 首页 > article >正文

【力扣】100.岛屿数量

AC截图

题目

思路

可以用一个和grid数组大小相同的visit数组记录陆地是否被访问过。

遍历grid数组,对于每一个没有被访问过的陆地,调用依次dfs,再将cnt++即可。

代码

class Solution {
public:
    void dfs(vector<vector<char>>& grid,vector<vector<bool>>& visit,int i,int j){
        //处理边界
        if(i<0 || j<0 || i>=grid.size() || j>=grid[0].size() || grid[i][j]=='0' || visit[i][j]){
            return ;
        }
        
        visit[i][j]=true;
   

        dfs(grid,visit,i+1,j);
        dfs(grid,visit,i,j+1);
        dfs(grid,visit,i-1,j);
        dfs(grid,visit,i,j-1);
    }
    int numIslands(vector<vector<char>>& grid) {
        vector<vector<bool>> visit(grid.size(),vector<bool>(grid[0].size(),false));
        int cnt = 0;

        for(int i=0;i<grid.size();i++){
            for(int j=0;j<grid[0].size();j++){
                if(grid[i][j]=='1' && !visit[i][j]){
                    dfs(grid,visit,i,j);
                    cnt++;
                }
            }
        }

        return cnt;
    }
};


http://www.kler.cn/a/551484.html

相关文章:

  • ChatBox对接DeepSeek R1大模型
  • 分享一款AI绘画图片展示和分享的小程序
  • 3.9 用户反馈智能分析实战:从情感识别到产品优化的闭环设计指南
  • 数据分析--数据清洗
  • SpringCloud面试题----eureka和zookeeper都可以提供服务注册与发现的功能,请说说两个的区别
  • Python + Selenium —— 下拉菜单处理!
  • 在Windows和Linux平台上使用c++获取文件当前路径
  • 2025年实时操作系统的全面对比与分析
  • 企业选择第三方软件测评服务公司有什么好处?
  • 【ISO 14229-1:2023 UDS诊断(ECU复位0x11服务)测试用例CAPL代码全解析⑮】
  • 【js逆向_入门】图灵爬虫练习平台 第四题
  • mybatis存储过程返回list
  • Helm快速开始
  • 【SQL】SQL多表查询
  • Windows系统安装GPU驱动
  • 数据分析的AI+流程(个人经验)
  • 一笔画-获取图像轮廓坐标点
  • JavaScript设计模式 -- 迭代器模式
  • vmware下ubuntu无法上网,电脑通过wifi连网
  • 罗德与施瓦茨ZNB4,4.5GHz网络分析仪的佼佼者