前言
每天和你一起刷 LeetCode 每日一题~
LeetCode 启动!
题目:边积分最高的节点
代码与解题思路
func edgeScore(edges []int) (ans int) {
// 直接维护哈希最大值即可
mp := map[int]int{}
for i, v := range edges {
mp[v] += i
// 如果多个节点的 边积分 相同,返回编号 最小 的那个。
if mp[v] > mp[ans] || mp[v] == mp[ans] && v < ans {
ans = v
}
}
return ans
}
今天这道题比较简单,题目给了 edges 数组,数组的含义是:下标代表节点,元素代表被指向的节点,下标节点指向数组的元素
也就是我们将元素作为 key,下标作为 value 累加,就能得到每个节点的 “边积分”
根据题目要求维护边积分最大的节点即可~
视频实况
【【LeetCode】每日一题 2024_9_21 边积分最高的节点(哈希)】