文章目录
- 1. 题目
- 2. 解题
1. 题目
有一个无向的 星型 图,由 n 个编号从 1 到 n 的节点组成。
星型图有一个 中心 节点,并且恰有 n - 1 条边将中心节点与其他每个节点连接起来。
给你一个二维整数数组 edges ,其中 edges[i] = [ui, vi]
表示在节点 ui 和 vi 之间存在一条边。
请你找出并返回 edges 所表示星型图的中心节点。
示例 1:
输入:edges = [[1,2],[2,3],[4,2]]
输出:2
解释:如上图所示,节点 2 与其他每个节点都相连,
所以节点 2 是中心节点。示例 2:
输入:edges = [[1,2],[5,1],[1,3],[1,4]]
输出:1提示:
3 <= n <= 105
edges.length == n - 1
edges[i].length == 2
1 <= ui, vi <= n
ui != vi
题目数据给出的 edges 表示一个有效的星型图
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/find-center-of-star-graph
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2. 解题
- 由题意可知,存在答案,那么只有一个点的入度会大于1(等于边的条数)
class Solution {
public:int findCenter(vector<vector<int>>& edges) {int n = edges.size()+1;vector<int> degree(n);for(auto& e : edges) {if(++degree[e[0]-1] > 1)return e[0];if(++degree[e[1]-1] > 1)return e[1];}return -1;}
};
204 ms 66.7 MB C++
我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!