LeetCode in Kotlin

2374. Node With Highest Edge Score

Medium

You are given a directed graph with n nodes labeled from 0 to n - 1, where each node has exactly one outgoing edge.

The graph is represented by a given 0-indexed integer array edges of length n, where edges[i] indicates that there is a directed edge from node i to node edges[i].

The edge score of a node i is defined as the sum of the labels of all the nodes that have an edge pointing to i.

Return the node with the highest edge score. If multiple nodes have the same edge score, return the node with the smallest index.

Example 1:

Input: edges = [1,0,0,0,0,7,7,5]

Output: 7

Explanation:

Node 7 has the highest edge score so return 7.

Example 2:

Input: edges = [2,0,0,2]

Output: 0

Explanation:

Nodes 0 and 2 both have an edge score of 3. Since node 0 has a smaller index, we return 0.

Constraints:

Solution

class Solution {
    fun edgeScore(edges: IntArray): Int {
        val a = LongArray(edges.size)
        var max = 0
        for (i in edges.indices) {
            a[edges[i]] += i.toLong()
            if (a[edges[i]] > a[max]) {
                max = edges[i]
            } else if (a[edges[i]] == a[max] && edges[i] < max) max = edges[i]
        }
        return max
    }
}
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy