当前位置:网站首页>leetcode:547、朋友圈
leetcode:547、朋友圈
2022-06-09 20:57:00 【OceanStar的学习笔记】
题目来源
题目描述

题目解析
题意
给出一个二维数组,它一定是个正方形。
二维数组的索引可以看成是朋友圈的编号
二维数组的值表示关系:1表示认识,0表示不认识
- M[i][j] = 1:表示i认识j
- (由题意)M[i][j] = 1,那么M[j][i]也为1,也就是j认识i
也就是说:
- 对角线一定全是1,因为自己是认识自己的
- M[i][i] = 1
- 而且这个矩阵是对称的
- M[i][j] = 1
- M[i][j] = 1
- 对角线一定全是1,因为自己是认识自己的
求有几个朋友圈

并查集
根据二维数组生成一个并查集
刚开始时,有集合 ( 1 ) 、 ( 2 ) 、 ( 3 ) 、 ( 4 ) ({1})、({2})、({3})、({4}) (1)、(2)、(3)、(4)
一行行遍历数组
- 刚开始时是第一行:
- 0和0是认识自己的,之前已经有了 ( 0 ) (0) (0),不用管
- 0和1不认识,不用管
- 0和2认识,因此 ( 0 ) (0) (0)合并 ( 2 ) ({2}) (2),得到 ( 0 , 2 ) {(0,2)} (0,2)
- 0和3不认识,不用管
- 0和4认识,因此合并 ( 4 ) ({4}) (4),得到 ( 0 , 2 、 4 ) {(0,2、4)} (0,2、4)
- 然后第二行
- 1和0不认识
- 1和1认识,之前已经有了 ( 1 ) (1) (1),不用管
- 1和2不认识
- 1和3认识,合并 ( 1 ) 、 ( 3 ) ({1})、({3}) (1)、(3)得到 ( 1 , 3 ) {(1,3)} (1,3)
- 1和1不认识
- 然后第三行,对于2
- 2和0认识:原来应该得到 ( 2 , 0 ) (2,0) (2,0),这个 ( 2 , 0 ) (2,0) (2,0)已经在第一行中出现过了,所以不用管
- 第四行
- 3和1认识: ( 1 ) 、 ( 3 ) ({1})、({3}) (1)、(3)之前已经合并了,不用管
- 第五行,得到 ( 4 ) (4) (4)
- 4和0, ( 0 ) 、 ( 4 ) ({0})、({4}) (0)、(4)之前已经合并了,不用管
也就是说生成了两个集合: ( 0 , 2 、 4 ) 、 ( 1 , 3 ) {(0,2、4)、(1,3)} (0,2、4)、(1,3),所以朋友圈的个数是2
因为这个矩阵高度对称,所以根据这个集合生成并查集时,只遍历右上角就可以了。
总的来说:
- 先根据N生成集合{0}、{1}、{2}、{3}
- 遍历矩阵的左上角,如果发现M[i][j] == 1,那么就将i和j合并
- 最终返回联通量
为什么要help数组,因为数组的操作比栈快多了
边栏推荐
- Deploy kubernetes + kubevirt and basic use of kubevirt
- 分享 4 种 JS 深拷贝的方法
- Gbase8s database select Clause 2
- 【流量分析】buu_[安洵杯 2019]Attack
- Understand go modules' go Mod and go sum
- Kubevirt network source code analysis
- Scheduled backup of laravel 8 database
- PaddleNLP通用信息抽取技术UIE【一】产业应用实例:信息抽取{实体关系抽取、中文分词、精准实体标。情感分析等}、文本纠错、问答系统、闲聊机器人、定制训练
- Pycharm进入debug模式后一直显示collecting data解决方法
- 03 Wireshark TCP
猜你喜欢

Analysis of 403 problems of Pro backstage sub administrator

Le navigateur ne peut pas ouvrir Baidu, d'autres peuvent être ouverts normalement

极大似然估计

每日技术分享之EIGRP的负载均衡配置

go安装图文教程

堆(优先队列)
![Fedformer:frequency enhanced decomposedtransformer for long term series forecasting[still learning...]](/img/58/d73cbaaeefc255816fe8cdc7165419.png)
Fedformer:frequency enhanced decomposedtransformer for long term series forecasting[still learning...]

搭建ngrok服务器,实现内网穿透服务,实现外网到内网的在线访问

Database, looking at the operation training problem, I suddenly can't do it. Solve it

Paddlenlp--uie (II) -- fast performance improvement with small samples (including doccona label)
随机推荐
Sort - quick sort
Example: use C # Net to teach you how to develop wechat official account (19) -- use wechat payment to transfer to wechat fans' change accounts
Dongle driven solution
服务器响应未加载静态资源
Comprendre le go des modules go. MOD et go. SUM
源代码数据防泄露解决方案分析
抽象类可以继承实体类吗?
队列在线程池中的应用
GBase8s数据库select子句4
分享 16 个有用的 TypeScript 和 JS 技巧
Typescript variable declaration
Why rewrite equals and hashcode?
Latex数学符号大全
In the first quarter, the global semiconductor equipment shipment reached US $24.7 billion, a year-on-year increase of 5%
Programming question: count the letters that appear most frequently in the string
快递单信息抽取【三】--五条标注数据提高准确率,仅需五条标注样本,快速完成快递单信息任务
GBase8s数据库select子句6
Gbase8s database select Clause 6
ASP.NET手机终端进销存系统,源码分享
快速了解服务器IO的实现