leetcode中如何解决朋友圈的问题
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这篇文章将为大家详细讲解有关leetcode中如何解决朋友圈的问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。班上有 N 名学生。其中有些人是朋友,有些则不是。他
千家信息网最后更新 2025年12月02日leetcode中如何解决朋友圈的问题
这篇文章将为大家详细讲解有关leetcode中如何解决朋友圈的问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
班上有 N 名学生。其中有些人是朋友,有些则不是。他们的友谊具有是传递性。如果已知 A 是 B 的朋友,B 是 C 的朋友,那么我们可以认为 A 也是 C 的朋友。所谓的朋友圈,是指所有朋友的集合。
给定一个 N * N 的矩阵 M,表示班级中学生之间的朋友关系。如果M[i][j] = 1,表示已知第 i 个和 j 个学生互为朋友关系,否则为不知道。你必须输出所有学生中的已知的朋友圈总数。
示例 1:
输入: [[1,1,0], [1,1,0], [0,0,1]]输出: 2
说明:已知学生0和学生1互为朋友,他们在一个朋友圈。
第2个学生自己在一个朋友圈。所以返回2。
示例 2:
输入: [[1,1,0], [1,1,1], [0,1,1]]输出: 1
说明:已知学生0和学生1互为朋友,学生1和学生2互为朋友,所以学生0和学生2也是朋友,所以他们三个在一个朋友圈,返回1。
注意:
N 在[1,200]的范围内。
对于所有学生,有M[i][i] = 1。
如果有M[i][j] = 1,则有M[j][i] = 1。
解题思路
1,给定的矩阵可以看成图的邻接矩阵。这样我们的问题可以变成无向图连通块的个数。
2,计算连通块的算法有,深度优先,广度优先和并查集
3,思路都一样:将连通的部分染上色,直至没有连通的点,就得到了一个联通块。
4,遍历整个矩阵就得到了所有连通块。
代码实现:
func findCircleNum(M [][]int) int {count:=0visited:=make([]int,len(M))for i:=0;iif visited[i]==0{count++dfs(M,visited,i)}}return count}func dfs(M[][]int,visited[]int,i int){for j:=0;jif M[i][j]==1&&visited[j]==0{visited[j]=1dfs(M,visited,j)}}}
关于"leetcode中如何解决朋友圈的问题"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
朋友
学生
矩阵
问题
篇文章
输出
思路
更多
示例
输入
不错
实用
三个
个数
中学
中学生
之间
代码
内容
名学
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
青岛东土科技互联网
团队协作数据库好用的工具
2015 中国服务器市场
刷了连接不上服务器怎么回事
鼎捷软件开发工程师待遇
php可以设置定时数据库吗
车联网 网络安全公司
在学生管理数据库下创建学生表
网络技术能赚到多少钱
连云港软件开发项目
全新的软件开发
竹山专业软件开发市场
网络安全校园好网民征文
研究上网网络安全的意义
华为南研所数通软件开发跳槽
软件开发java方向书籍
vba进行数据库查询
数据库命名的规范性
网络技术检测工作
云邮天地网络技术有限公司
网易猫和老鼠服务器是什么
游戏服务器被ddos
怎么通过域名访问服务器
数据库中的sum函数
电视服务器怎么用手机显示
复制另一个数据库的表
操作系统中用的最多的数据库
黄瓜网络技术有限公司
数据库原理与应用日志名词解释
数据量大数据库