题目:

并查集:

/*力扣 547 朋友圈 并查集 c语言 2020/12/14 1:04 by ksks14*/
/*初始化 查找 合并*/
#define maxsize 10000
int flag[maxsize];//定义flag数组,用于并查集的查找
int find_root(int n){//并查集的查找 if(n==flag[n])              return n;else   return flag[n]=find_root(flag[n]);//递归查找(深度搜索),直到根
}
int findCircleNum(int** M, int MSize, int* MColSize){for(int i=0;i<maxsize;i++) flag[i]=i;//初始化 int ret=MSize;//最大圈数,即正对角线矩阵 for(int i=0;i<MSize;i++){//对称矩阵,直接锁定下半即可 for(int j=0;j<i;j++){if(!M[i][j])continue;//若为0直接跳过,不考虑else{//若不为0则查找根是否相同  若为同一圈子,则总圈数-1  并合并 if(find_root(flag[i])!=find_root(flag[j])){flag[find_root(i)]=flag[find_root(j)];ret-=1;}   }       }}return ret;
}

深搜求连通分量:

 /*力扣 547 朋友圈 c 2020/12/14 16:46 by ksks14*/
/*深度优先搜索,带标记数组*/
#define maxsize 200
void dfs(int **M,int MSize,int *flag,int line){for(int col=0;col<MSize;col++)if(M[line][col]&&!flag[col]){flag[col]=1;dfs(M,MSize,flag,col);}
}
int findCircleNum(int** M, int MSize, int* MColSize){int flag[maxsize]={0};//初始化标记数组 int count=0;//count记录连通分量 for(int i=0;i<MSize;i++)if(!flag[i]){dfs(M,MSize,flag,i);count+=1;//每走完一条路径,加一 }return count;
}

广搜求连通分量:

/*力扣 547 朋友圈 c 2020/12/14 16:14 by ksks14*/
/*广搜求连通分量*/
/*这里有个问题,如果把count记为*/
#define maxsize 500
int findCircleNum(int** M, int MSize, int* MColSize){int flag[maxsize]={0};//广搜的标记数组,标记被访问过的元素int queue[maxsize]={0};//广搜的队列 int count=0;//用于记录连通分量 int front=0;int rear=0;for(int i=0;i<MSize;i++){if(flag[i]!=0)continue;queue[rear++]=i;flag[i]=1;//表示访问过while(rear!=front){int access=queue[front++];for(int j=0;j<MSize;j++){if(access!=j&&!flag[j]&&M[access][j]){queue[rear++]=j;flag[j]=1;}}} count+=1;rear=0;front=0;//队列归零 }return count;
}

力扣 547. 朋友圈 c语言 三种解法 深搜 广搜 并查集。相关推荐

  1. leetcode 547. 朋友圈 C语言

    班上有 N 名学生.其中有些人是朋友,有些则不是.他们的友谊具有是传递性.如果已知 A 是 B 的朋友,B 是 C 的朋友,那么我们可以认为 A 也是 C 的朋友.所谓的朋友圈,是指所有朋友的集合. ...

  2. 微信之父张小龙:超1亿人朋友圈设置了三天可见

    出品 | AI科技大本营 1 月 9 日,2019 微信公开课在广州开幕,主论坛未露面的腾讯集团高级执行副总裁兼微信事业群总裁张小龙,终于露面,然后一张口就是整整四小时. 提到用户对微信的吐槽,张小龙 ...

  3. 力扣 两数相加 C语言 题解

    ** 力扣 两数相加 C语言 题解 ** 文章目录 力扣 两数相加 C语言 题解 一.完整题目 二.解题思路 二.编写代码 四.测评结果 五.总结评价 一.完整题目 给你两个非空的链表,表示两个非负的 ...

  4. 好友朋友圈动态仅三天可见?点击这个按钮,不管多久都能看

    微信朋友圈可以说是了解好友的最好地方,但是现在大部分人都会设置朋友圈动态仅三天可见的权限. 这样就只能看到好友三天内的朋友圈内容,其实只要点击这个按钮,多久都能看! 先给大家介绍一点朋友圈小技巧吧! ...

  5. 2021-07-01:并查集,200岛屿问题,547朋友圈问题

    并查集: 并查集的初始化: 自己的root先初始化为自己. 如果需要合并ab, 则把b的老大指向a 并查集优化1: 需要多创建一个数据结构rank去查看深度 将短链的root接在长链上,降低查找深度 ...

  6. 回顾微信之父张小龙演说:超1亿人朋友圈设置了三天可见

    2019年1 月 9 日,2019 微信公开课在广州开幕,主论坛未露面的腾讯集团高级执行副总裁兼微信事业群总裁张小龙,终于露面,然后一张口就是整整四小时.当时演讲的内容很实在,也真情实感的讲述了微信的 ...

  7. c语言 最大公约数 最小公倍数的编程,C语言三种算法求解最大公约数与最小公倍数...

    C语言三种算法求解最大公约数与最小公倍数 最大公约数与最小公倍数的求解是很多初学C的人所面临的一道问题.当然这道问题并不难解答,也有很多人已经写过相关的博客,我在此书写此篇博客,一是为了让自己能够夯实 ...

  8. 五猴分桃题解析(C语言5种解法)

    五猴分桃题解析(C语言 5 种解法 ) 本人喜欢探索各种算法.80年代听闻五猴分桃题,颇感兴趣.曾尝试求解,得小学算术解法和迭代(递增,递减)算法.那时还没有PC是用算盘计算的,那"二弹一星 ...

  9. 交换机的三种连接方式:级联、堆叠和集群

    交换机的连接方式大家应该都知道,一共有三种,分别是:级联.堆叠和集群.今天, 就由飞畅科技的小编来为大家详细介绍下交换机的这三种连接方式及彼此间的区别,感兴趣的朋友就一起来看看吧! 交换机的级联技术一 ...

最新文章

  1. 在O(1)时间删除链表节点
  2. [jQuery]使用jQuery.Validate进行客户端验证(高级篇-下)——不使用微软验证控件的理由...
  3. Spring整合Hibernate中自动建表
  4. 此心拖泥带水,是人生最苦处
  5. HDR 成像技术学习(三)—— LOFIC
  6. 三国演义词云的python代码_词云制作没那么难,Python 10 行代码就实现了!
  7. lol最克制诺手的英雄_LOL“英雄恐惧症”,当你上单遇到诺手时,你会用什么英雄对线...
  8. struts2登陆拦截器
  9. 软件找不到msvcp140.dll无法继续执行怎么办
  10. 论文被多人研究过了,我还可以怎么写?
  11. 无线网络 EAP 认证
  12. ZOJ3549 Little Keng(快速幂)
  13. 微信html页面缓存问题,浅谈微信页面入口文件被缓存解决方案_简单_前端开发者...
  14. 如何在C#中将 加载、编辑WPS表格?国产控件就能搞定
  15. 在Textview中获取指定文字位置(兼顾网址链接和emoji表情),并在其附近展示图片
  16. 机器学习中火爆的对抗学习是什么,有哪些应用?
  17. 计算机的传播速度和传播速率一样吗,U盘传输速度和什么有关?
  18. 共识协议(7)aura
  19. 充值10万跌成860元,YAM一日崩盘记
  20. OCR应用:证件识别

热门文章

  1. 主流深度学习GPU云平台租赁价格比较表
  2. Java-web css笔记
  3. R语言ggplot2可视化:使用patchwork包(直接使用加号+)将一个ggplot2可视化结果和数据表格横向组合起来形成最终结果图
  4. bugku 杂项 图穷匕见 wp
  5. 【Pandas总结】第六节 Pandas 添加列
  6. bind()函数介绍
  7. ftp关键技术二:nobody进程创建和使用(一)
  8. 文明重启战局服务器维护中是什么意思,文明重启为什么改了密码别人还能登?...
  9. 网友推荐2010年央视春晚节目单 恶搞社会热点
  10. html条形图显示统计数据,条形统计图和柱形统计图区别