目录
🌺题目描述
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];
}
};
🌺每日金句
争取每天写一份力扣题解,不积跬步无以至千里,相信坚持下去会有收获的!