首页 > 其他分享 >200. 岛屿数量c

200. 岛屿数量c

时间:2024-03-20 16:22:04浏览次数:13  
标签:200 int visit 岛屿 dfs grid && 数量

int visit[300][300];

void dfs(char** grid,int m,int n,int i,int j){
    if(i>=m || j>=n) return;
    visit[i][j]=1;
    if( i+1<m &&  grid[i+1][j]=='1' && visit[i+1][j]==0 ){
        dfs(grid,m,n,i+1,j);
    }
    if( j+1<n  &&  grid[i][j+1] =='1' && visit[i][j+1] == 0){
        dfs(grid,m,n,i,j+1);
    }
    if( j-1 >=0 && grid[i][j-1]=='1' && visit[i][j-1] ==0  ) dfs(grid,m,n,i,j-1);
    if(i-1 >=0 && grid[i-1][j]=='1' && visit[i-1][j] ==0 ) dfs(grid,m,n,i-1,j);
}

int numIslands(char** grid, int gridSize, int* gridColSize) {
    int m=gridSize,n=gridColSize[0];
    for(int i=0;i<300;i++){
        for(int j=0;j<300;j++) visit[i][j]=0;
    }
    int count=0;
    for(int i=0;i<m;i++){
        for(int j=0;j<n;j++){
            if(grid[i][j]=='1'&& visit[i][j]==0){
                dfs(grid,m,n,i,j);
                count++;
            }
        }
    }
    return count;
}

 

标签:200,int,visit,岛屿,dfs,grid,&&,数量
From: https://www.cnblogs.com/llllmz/p/18085504

相关文章

  • [HAOI2007][洛谷P2218]覆盖问题
    看到这道题,思考一下后发现要用二分答案。所以为什么要用二分?因为标签有二分还在二分专题里因为对于\(ans\)来说,如果\(ans\)不行,那么\(ans-1\)也一定不行;也就是说,答案满足单调性,所以可以二分;也是因为暴力明显过不了那么对于平面上的一些点来说,如果我们用一个最小的矩形......
  • P3478 [POI2008] STA-Station
    原题链接WARNING!!!使用map代替数组不再可靠,因为map的插入查找修改复杂度均为\(O(logn)\),即使unorder_map也不行!!!题解我们发现,当一个节点的深度之和已知时(这里认为是根节点),其相邻节点的深度之和也可通过某种方程转移而得,有人称这种方法为换根DP具体的,将树拆开成图(求深度之和......
  • GEE高阶应用——如何绘制2000-2022年土地利用变化轨迹时序图
    简介土地利用变化是指在一定时间范围内,土地利用类型和结构发生的变化。时序变化是指这种变化随时间的推移而发生的序列变化。土地利用变化轨迹的时序变化具体介绍如下:首先,土地利用变化轨迹的时序变化体现在土地利用类型的演变上。在过去的几十年里,随着人口的增加、经济的发展......
  • 西门子 S7-200 SMART 系列六:手把手教你配置S7-200 SMART Modbus RTU
    s7-200smartModbus主站通讯一Modbus通讯简介在工业领域,Modbus无处不在,无论你是否用过,大概你肯定听过,那么Modbus是什么呢?Modbus是Modicon公司于1979年为使用可编程逻辑控制器通信而发表,现在已经发展成为工业领域标准通讯协议之一,广泛应用于PLC与设备、仪表之间进行数......
  • P7880 [Ynoi2006] rldcot
    题意给定一棵树,求区间\([l,r]\)中任意两点的LCA的不同的带权深度的个数。Sol很容易想到Dsuontree。因为当前点\(x\)作为LCA产生贡献当且仅当有两点\(u,v\)分别在\(x\)的不同子树中。集中注意力,不难发现对于一个\(u\)来说,只有子树中她在序列上的前驱后继会......
  • 想要快速建站,这有1200+免费网站模板请查收!
    不会前端,不知道怎么写代码,想要快速建站?不用担心,松桑给大家搜集了一个宝藏网站:HTMLrev。网站地址我放在结尾阅读原文了,想要直接访问的读者可以直接跳到结尾了。网站模板包含两大类,一类是前端三件套框架相关的,懂前端代码的可以直接下载然后自己定制化修改,包括Bootstrap、Tail......
  • CSSE2002 java项目描述
    大型编程(CSSE2002)课业1-学期1,2024EEC学校昆士兰州大学必须通过做事来学习;因为你认为您知道,直到尝试之前,您都无法确定。-Sophocles不要打扰。修订1.1.0概述此任务提供了基于一个基于一个Java项目的实用经验提供的规格。该规范以Javadocs的形式提供,该规范描述了您的课......
  • 洛谷题单指南-二叉树-P3884 [JLOI2009] 二叉树问题
    原题链接:https://www.luogu.com.cn/problem/P3884题意解读:要计算二叉树的深度、宽度、节点间的距离,深度、宽度的概念很好理解,节点间的距离描述是:节点u,v之间的距离表示从u到v的最短有向路径上向根节点的边数的两倍加上向叶节点的边数。说人话就是:u到v的距离=uv最近公共祖先到u......
  • SqlServer2008(R2)(一)SqlServer2008(R2)经典宝藏操作收集整理
    一、常见操作1、TRUNCATETABLE语句删除表数据TRUNCATETABLE语句比DELET删除表中的所有行更快。从逻辑上讲,TRUNCATETABLE它类似于DELETE没有WHERE子句的语句。TRUNCATETABLE语句从表中删除所有行,但表结构及其列,约束,索引等保持不变。要删除表及其数据,可以使用该DROP......
  • 求字符串中某个字符的数量--long k = s.chars().filter(ch -> ch == c).count();
    classSolution{publiclongcountSubstrings(Strings,charc){longk=s.chars().filter(ch->ch==c).count(); //Java中的count()方法返回值是基本数据类型longreturnk*(k+1)/2;}}作者:灵茶山艾府链接:https://leetcode.cn/pr......