1791. Find Center of Star Graph

仅供自己学习

 

思路:

因为题目规定了一定有一个中心点,且是星型,所以通过记录度为n-1的点的下标就可以了。用一个vector存储每个点的度的多少即可。

代码:

 1 class Solution {
 2 public:
 3     int findCenter(vector<vector<int>>& edges) {
 4         int size=edges.size()+1;
 5         int pos=0;
 6         vector<int> degree(size+1);
 7         for(auto& a:edges){
 8             degree[a[0]]++;
 9             degree[a[1]]++;
10             if(degree[a[0]]==size-1) pos=a[0];
11             else if(degree[a[1]]==size-1) pos=a[1];
12         }
13         return pos;
14         
15     }
16 };

 

因为一定是星型中心点的格式,那么中心点一定会在每个组合中。所以我们只需要判断前两个组合,哪个位置的元素是重复出现的即可。

代码:

1 class Solution {
2 public:
3     int findCenter(vector<vector<int>>& edges) {
4         if(edges[0][0]==edges[1][1]) return edges[0][0]; 
5         else if(edges[0][0]==edges[1][0]) return edges[0][0]; //判断edge[0][0]是不是中心点,即重复出现
6         else return edges[0][1];//如果不是edge[0][0]那么一定是edges[0][1]
7         
8     }
9 };

 

posted @ 2021-03-17 11:31  Mrsdwang  阅读(64)  评论(0)    收藏  举报