547. Friend Circles(朋友圈)

LeetCode算法题集-547. Friend Circles(朋友圈) 有个班级,里面有N个学生,他们之中有些是朋友有些不是,比如如果A是B的朋友,B是C的朋友,那么A就是C的间接朋友,我们定义所谓的朋友圈就是由直系和间接朋友所组成的群体。 给定一个N*N的矩阵M,代表这个班级里所有学生的朋友关系,如果M[i][j] = 1,那么第i个和第j个学生就是互为直系朋友,不为1的话就不是朋友。而你的任务就是输出整个班级里总的朋友圈数量。 英语原文: There 阅读详情

There are N students in a class. Some of them are friends, while some are not. Their friendship is transitive in nature. For example, if A is a direct friend of B, and B is a direct friend of C, then A is an indirect friend of C. And we defined a friend circle is a group of students who are direct or indirect friends.

Given a N*N matrix M representing the friend relationship between students in the class. If M[i][j] = 1, then the ith and jth students are direct friends with each other, otherwise not. And you have to output the total number of friend circles among all the students.

Example 1:
Input:

[[1,1,0],
 [1,1,0],
 [0,0,1]]

Output: 2
Explanation:The 0th and 1st students are direct friends, so they are in a friend circle.
The 2nd student himself is in a friend circle. So return 2.

Example 2:
Input:

[[1,1,0],
 [1,1,1],
 [0,1,1]]

Output: 1
Explanation:The 0th and 1st students are direct friends, the 1st and 2nd students are direct friends,
so the 0th and 2nd students are indirect friends. All of them are in the same friend circle, so return 1.

给出一个N*N矩阵M,M(i,j) = 1表示 i 和 j 是朋友,而且朋友有传递性,A和B是朋友,B和C是朋友,那么A和C也是间接的朋友,让找出有几个朋友圈,其中一个人可以是他自己的朋友。

思路:
矩阵M是N*N的,而且M(i,j) = M(j, i), 一共N个人,那么可以取一维数组visited判断第i个人的朋友是否已经找过。
即找无向图的强连通区域,如果现在在看第i个人,那么取第i行,再遍历这行的所有列,看谁是i的朋友,如果M(i,j) == 1, 说明 j 是 i 的朋友,那么再去找 j 的朋友(访问第 j 行,以此类推,DFS),直到找到 i 所有直接和间接的朋友,访问过的在visited里标为true

    public int findCircleNum(int[][] M) {
        if(M == null || M.length == 0) {
            return 0;
        }
        
        int res = 0;
        int n = M.length;
        boolean[] visited = new boolean[n];
        for(int r = 0; r < n; r++) {
            if(visited[r]) {
                continue;
            }
            
            dfs(M, visited, n, r);
            res ++;
        }
        
        return res;
    }
    
    public void dfs(int[][] M, boolean[] visited, int n, int r) {
        if(visited[r]) {
            return;
        }
        visited[r] = true;
        
        for(int c = 0; c < n; c++) {
            if(M[r][c] == 1 && !visited[c]) {
                dfs(M, visited, n, c);
            }
        }
        
    }
LeetCode第547题 朋友圈 Friend Circles -- 超详细解析 1、题目描述 https://leetcode-cn.com/problems/friend-circles/ 2、解析 3、代码 class Solution { final int N = 210; int[] p = new int[N]; int find(int x){ if(p[x] != x){ p[x] = find(p[x]); } return p[... 阅读详情

相关推荐

基于Docker的D435i相机与IMU联合标定实战指南

本文详细介绍了基于Docker的D435i相机与IMU联合标定实战指南,涵盖kalibr镜像构建、IMU标定全流程、双目相机标定技巧及联合标定结果验证。通过Docker容器化部署,简化了复杂依赖环境,提升标定效率与精度,适用于机器人视觉与SLAM应用。

weixin_30872337的博客 239

LeetCode:Friend Circles 查并集

题目描述 547. Friend Circles 解题思路 相当于把所有学生分成几个集合,每个集合里都是有friendship的同学,最后计算集合的个数,所以可以利用查并集去计算。 查Find:每个集合选一个代表元素,新加入的元素将自己的代表改为集合的代表,如果自己一个集合的话,自己可以代表自己。 并Union:对两个元素操作,如果发现两者代表元素一样,则属于同一集合;如果不是,则将其中...

zhaoGavin的博客 618

别再凭感觉估算!用ADS的EBOND库精确仿真Bonding线寄生电感(附完整参数设置指南)

本文详细介绍了在ADS中使用EBOND库精确仿真Bonding线寄生电感的方法,帮助射频工程师在毫米波频段实现高精度建模。通过三维物理参数和电磁场求解算法,EBOND模型能将误差控制在5%以内,显著提升电路性能。文章还提供了完整的参数设置指南和实战操作步骤,适用于5G毫米波前端模块等高频应用场景。

weixin_28730131的博客 504

547. Friend Circles

305. Number of Islands II方法1: Union find易错点Complexity方法2: dfsComplexity There are N students in a class. Some of them are friends, while some are not. Their friendship is transitive in nature. For exa...

wilzxu的博客 165

INCA基础教程

以软件自带Demo为例记录INCA学习过程,主要内容包括测量与标定。

yunqianrui的博客 6万+

【Codesys】-扫描添加失败,手动添加第三方模块,真·DC模式的高速计数模块

欧姆龙耦合器(NX-ECC201)和高速计数模块(NX-EC0132)单独使用。扫描设备添加到Codesys中,会报错,无法自动添加。记录一下,以防忘记。高速的计数保证了位置的准确性,位置准确就能保证裁切的精度,一切的基础就在这儿了,奈何目前只有欧姆龙和倍福能做到这样的波形。

qq_35316470的博客 1388

547. Friend Circles问题深入分析

参考诸位博文,总结了使用并查集和深度、广度优先遍历查询图的连通分支的方法

天之彼方的博客 989

【数据攻略】字节面试真题(含答案)+100道面试题库

数据攻略

qq_40002713的博客 4102

【小白爬Leetcode547】朋友圈 Friend Circles

【小白爬Leetcode547】朋友圈 Friend Circles 题目Discription思路一 DFS一个错误的想法小聪明,将空间复杂度降为O(1)思路二 BFS思路三 并查集 Leetcode547 medium\color{#FF4500}{medium}medium 点击进入原题链接:单词搜索II Word SearchII 题目 Discription There are N students in a class. Some of them are friends, while som

weixin_41604040的博客 463

STC15单片机实战项目软件开发第四讲 - 按键检测(状态机)

软件开发第四讲 - 按键检测(状态机) 一、工具链接 1、Keil c51 UV4 https://yunpan.360.cn/surl_yrIfYYmeRFk 2、STC-ISP下载软件 https://yunpan.360.cn/surl_yxH4CuUUvI3 二、学习板获取方式 方法1:自己设计PCB,自行打板焊接; 方法2:用群主设计的PCB,自行打板焊接; 方法3:向群主购买,淘宝链接...

硬件家园 3045

手把手教你用UC3844设计多路输出反激电源(附PCB布局避坑指南)

本文详细介绍了使用UC3844设计多路输出反激电源的实战技巧,包括核心电路设计、变压器参数计算、PCB布局优化及EMI抑制方法。通过实验室实测数据和项目经验,帮助工程师避开常见设计陷阱,提升电源性能和可靠性。特别附赠PCB布局避坑指南,助力高效完成开关电源设计。

weixin_30300225的博客 568

LeetCode 547. Friend Circles_朋友圈

班上有N名学生。其中有些人是朋友,有些则不是。他们的友谊具有是传递性。如果已知 A 是 B的朋友,B 是 C的朋友,那么我们可以认为 A 也是 C的朋友。所谓的朋友圈,是指所有朋友的集合。 给定一个N * N的矩阵M,表示班级中学生之间的朋友关系。如果M[i][j] = 1,表示已知第 i 个和 j 个学生互为朋友关系,否则为不知道。你必须输出所有学生中的已知的朋友圈总数。 示...

桀客 363

YOLOv11改进 - 卷积Conv | PATConv(Partial Attention Convolution)部分注意力卷积,在减少计算量的同时融合卷积与注意力的优势 | AAAI 2026

本文提出部分注意力卷积(PATConv)机制,并将其集成到YOLOv11中。传统神经网络中,卷积计算密集,注意力机制全局计算冗余,此前的“部分卷积”会丢失未计算通道的特征价值。PATConv通过“通道拆分 - 并行处理 - 结果拼接”的逻辑,给不同通道分配“擅长的任务”,兼顾局部与全局特征。基于此,它还衍生出PAT_ch、PAT_sp和PAT_sf三种细分模块。此外,还提出了动态部分卷积(DPConv),并构建了新的混合网络家族PartialNet。我们将PATConv代码集成到YOLOv11中,实验表明,

魔改工程师的博客 1085

547 Friend Circles 朋友圈

班上有 N 名学生。其中有些人是朋友,有些则不是。他们的友谊具有是传递性。如果已知 A 是 B 的朋友,B 是 C 的朋友,那么我们可以认为 A 也是 C 的朋友。所谓的朋友圈,是指所有朋友的集合。给定一个 N * N 的矩阵 M,表示班级中学生之间的朋友关系。如果M[i][j] = 1,表示已知第 i 个和 j 个学生互为朋友关系,否则为不知道。你必须输出所有学生中的已知的朋友圈总数。示例 1:...

weixin_30625691的博客 465

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Leetcode 547.朋友圈(Friend Circles)

Leetcode 547.朋友圈 1 题目描述(Leetcode题目链接)   班上有 N 名学生。其中有些人是朋友,有些则不是。他们的友谊具有是传递性。如果已知 A 是 B 的朋友,B 是 C 的朋友,那么我们可以认为 A 也是 C 的朋友。所谓的朋友圈,是指所有朋友的集合。   给定一个 N * N 的矩阵 M,表示班级中学生之间的朋友关系。如果M[i][j] = 1,表示已知第 i 个和 j...

qq_39378221的博客 254

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

LeetCode-547. Friend Circles(JAVA)朋友圈数量

LeetCode-547. Friend Circles(JAVA)朋友圈数量

mine_song的博客 7199

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

[Swift]LeetCode547. 朋友圈 | Friend Circles

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/)➤GitHub地址:https://github.com/strengthen/LeetCode➤原文地址:https://www.cnblogs.com/streng...

weixin_30656145的博客 118

547. Friend Circles 朋友圈

There are N students in a class. Some of them are friends, while some are not. Their friendship is transitive in nature. For example, if A is a direct friend of B, and B is a direct friend of C, ...

weixin_30748995的博客 198

LeetCode 547 Friend Circles(朋友圈问题)

题目描述: 班上有 N 名学生。其中有些人是朋友,有些则不是。他们的友谊具有是传递性。如果已知 A 是 B 的朋友,B 是 C 的朋友,那么我们可以认为 A 也是 C 的朋友。所谓的朋友圈,是指所有朋友的集合。给定一个 N * N 的矩阵 M,表示班级中学生之间的朋友关系。如果M[i][j] = 1,表示已知第 i 个和 j 个学生互为朋友关系,否则为不知道,输出所有学生中的已知的朋友圈总...

Cheng_913的博客 1777

friend java,LeetCode 547. Friend Circles 朋友圈(C++/Java)

题目:There areNstudents in a class. Some of them are friends, while some are not. Their friendship is transitive in nature. For example, if A is adirectfriend of B, and B is adirectfriend of C, th...

weixin_28977715的博客 212

[LeetCode] 547. Friend Circles 朋友圈

There areNstudents in a class. Some of them are friends, while some are not. Their friendship is transitive in nature. For example, if A is adirectfriend of B, and B is adirectfriend of C, then ...

weixin_30405421的博客 162

Leetcode之深度优先搜索(DFS)专题-547. 朋友圈(Friend Circles)

Leetcode之深度优先搜索(DFS)专题-547. 朋友圈(Friend Circles) 深度优先搜索的解题详细介绍,点击 班上有 N 名学生。其中有些人是朋友,有些则不是。他们的友谊具有是传递性。如果已知 A 是 B 的朋友,B 是 C 的朋友,那么我们可以认为 A 也是 C 的朋友。所谓的朋友圈,是指所有朋友的集合。 给定一个 N * N 的矩阵 M,表...

denghan1065的博客 293

547. Friend Circles 求间接朋友形成的朋友圈数量

[抄题]: There areNstudents in a class. Some of them are friends, while some are not. Their friendship is transitive in nature. For example, if A is adirectfriend of B, and B is adirectfriend of C...

weixin_30703911的博客 131

Leetcode-547. Friend Circles 朋友圈 (矩阵DFS)

题目 班上有 N 名学生。其中有些人是朋友,有些则不是。他们的友谊具有是传递性。如果已知 A 是 B 的朋友,B 是 C 的朋友,那么我们可以认为 A 也是 C 的朋友。所谓的朋友圈,是指所有朋友的集合。 给定一个 N * N 的矩阵 M,表示班级中学生之间的朋友关系。如果M[i][j] = 1,表示已知第 i 个和 j 个学生互为朋友关系,否则为不知道。你必须输出所有学生中的已知的朋友圈总数。 链接:https://leetcode.com/problems/friend-circles/ There

JamieLuo的博客 409
上一篇: leetcode 112/113( Path Sum (II)路径求和)
下一篇: leetcode 5. Longest Palindromic Substring(最长回文子串)
蓝羽飞鸟
博客等级 码龄8年 1万+粉丝 727原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝羽飞鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值