题目![](https://i-blog.csdnimg.cn/blog_migrate/68791725858e505c290a8cb87bb44bc2.png)
示例![](https://i-blog.csdnimg.cn/blog_migrate/60984e823d6a96d962a362be96895ca9.png)
思路
解题思路
题意就是给定一个并查集,返回集合中下标和最大的集合头节点下标
根据题意直接构造一个并查集,将数组元素添加到并查集中,,每次保存最大集合下标即可
代码
#define MAX(a, b) ((a) < (b) ? (a) : (b))
int edgeScore(int* edges, int edgesSize){
long ans[edgesSize];//定义简单并查集
memset(ans, 0, sizeof(ans));
long max = -1;
int index = -1;
for(int i = 0; i < edgesSize; i++)//枚举数组所有元素
{
ans[edges[i]] += i;//统计当前头结点数组下标和
if(max == ans[edges[i]])//保存最大值
{
max = ans[edges[i]];
index = MAX(index, edges[i]);
}
else if(max < ans[edges[i]])
{
max = ans[edges[i]];
index = edges[i];
}
}
return index;
}
作者:xun-ge-v
链接:https://leetcode.cn/problems/node-with-highest-edge-score/solution/bing-cha-ji-by-xun-ge-v-oqwn/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。