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 };

浙公网安备 33010602011771号