LeetCode 2374. Node With Highest Edge Score
周賽306。其實這題放到Q1也可以吧,說是graph只是幌子,但是好像不少人被騙到。
題目
有一個有向圖,有n個節點,編號從0到n-1,每個節點正好有一個出邊。
輸入長度為n的陣列edges,代表節點i的出邊指向edge[i]。
邊際分數指的是指向該節點的來源節點編號總和。
回傳邊際分數最高的節點。若有多個相同分數的節點,則回傳索引最小者。
解法
其實根本不用建圖,只要遍歷所有邊,以來源節點的編號作為分數,加到目標節點上。
最後找到分數最大的節點即可。
class Solution:
def edgeScore(self, edges: List[int]) -> int:
N=len(edges)
scores=[0]*N
for i,to in enumerate(edges):
scores[to]+=i
ans=-1
mx=-inf
for i,sc in enumerate(scores):
if sc>mx:
mx=sc
ans=i
return ans