美文网首页
leetcode547 朋友圈

leetcode547 朋友圈

作者: 奥利奥蘸墨水 | 来源:发表于2020-04-10 00:11 被阅读0次

题目

朋友圈

分析

由题目知,每一个人都有一些朋友,朋友的朋友也是我的朋友,把这些朋友串联起来可以组成一个圈就是朋友圈。

解法:

  • 一开始我们不知道有几个朋友圈,所以朋友圈个数为0,并且每个人都不在朋友圈里。
  • 遍历到第一个人,发现他还不属于任何一个朋友圈,那么他必定属于一个新的朋友圈,所以朋友圈个数加一。
  • 然后根据关系,将他所在的朋友圈的人全部找出来标记,这些标记的人以后再遍历到的时候,我们就知道他已经属于一个我们已经找到的朋友圈了。这一步用dfs来做。
  • 重复以上步骤直到遍历所有人。

代码

class Solution {
private:
    int res;
    vector<int> bo;
        
    void dfs(int k, vector<vector<int>>& nums){
        for (int i = 0; i < nums.size(); i++){
            if (nums[k][i] == 1 && bo[i] == 0){
                bo[i] = 1;
                dfs(i, nums);
            }
        }
    }
public:
    int findCircleNum(vector<vector<int>>& nums) {

        bo = vector(nums.size(), 0);
        res = 0;

        for (int i = 0; i < nums.size(); i++){
            if (bo[i] == 0){
                res++;
                dfs(i, nums);
            }
        }

        return res;
    }
};

相关文章

  • LeetCode547(朋友圈)

    题目: 班上有N名学生。其中有些人是朋友,有些则不是。他们的友谊具有是传递性。如果已知A是B的朋友,B是C的朋友,...

  • leetcode547 朋友圈

    题目 朋友圈 分析 由题目知,每一个人都有一些朋友,朋友的朋友也是我的朋友,把这些朋友串联起来可以组成一个圈就是朋...

  • LeetCode No.6 朋友圈

    1. LeetCode547题目链接链接 https://leetcode-cn.com/problems/fri...

  • Leetcode547: Friend Circles 朋友圈问

    问题描述 在一个班级里有N个同学, 有些同学是朋友,有些不是。他们之间的友谊是可以传递的比如A和B是朋友,B和C是...

  • LeetCode547 Friend Circles

    题目 547. Friend Circles There are N students in a class. S...

  • 朋友圈,朋友圈?

    朋友圈是一个奇怪但是又正常的圈子,深思后,也醒悟其实不过也就是人与人之间关系的演变过程。 从一开始的大家都只是在上...

  • 朋友圈@朋友圈

    2017.11.17 周五 有点冷 起风了,冬天伴随着凛冽的北风如约而至。不...

  • 你的朋友圈会屏蔽你的父母么?

    吃饭,发个朋友圈;逛街,发个朋友圈;K歌,发个朋友圈;旅游,发个朋友圈;锻炼,发个朋友圈;遛狗,发个朋友圈;心情不...

  • 朋友圈啊朋友圈

    我们在尘世间寻找,我们在朋友圈里热闹。 朋友圈那么缤纷惹眼,供醒着的人们各种呈现,供逛赏的人们娱乐消遣。 朋友圈那...

  • 朋友圈啊朋友圈

    晚上十点,大东阿美小两口都躺到了床上。 通常他们都是这个时候上床,但不会马上睡去,各自都拿着手机在“喜刷刷喜刷刷”...

网友评论

      本文标题:leetcode547 朋友圈

      本文链接:https://www.haomeiwen.com/subject/hnwkmhtx.html