0
点赞
收藏
分享

微信扫一扫

力扣(每日一题)—— 1791. 找出星型图的中心节点

目录

🌺题目描述

 🌺方案一

 🌺方案二

 🌺每日金句

 

🌺题目描述

1791. 找出星型图的中心节点

 

 🌺方案一

由题意可得,一共有n个节点,只有一个中心节点,因此,中心节点出现了 n−1次。

遍历 edges 中的每条边并计算每个节点出现的次数,返回出现了n-1次的节点就是中心节点。

class Solution {
public:
    int findCenter(vector<vector<int>>& edges) {
        int n=edges.size();
        vector<int> a(n + 2,0);
        for(int i=0;i<n;i++)
        {
            a[edges[i][0]]++;
            a[edges[i][1]]++;
        }
        for(int i=0;;i++)
        {
            if(a[i]==n)
                return i;
        }
    }
};

 🌺方案二

有图像可以看出,对于星型图中的任意两边,总是连接着中心节点。因此,我们可以选取第一条边和第二条边,寻找重复出现的点,这个点就是中心节点。

class Solution {
public:
    int findCenter(vector<vector<int>>& edges) {
        if(edges[0][0]==edges[1][0]||edges[0][0]==edges[1][1])
            return edges[0][0];
        else
            return edges[0][1];
    }
};

 🌺每日金句

争取每天写一份力扣题解,不积跬步无以至千里,相信坚持下去会有收获的!

举报

相关推荐

0 条评论