690. Employee Importance (Easy) - TengnanYao/daily_leetcode GitHub Wiki
"""
# Definition for Employee.
class Employee:
def __init__(self, id: int, importance: int, subordinates: List[int]):
self.id = id
self.importance = importance
self.subordinates = subordinates
"""
class Solution:
def getImportance(self, employees: List['Employee'], id: int) -> int:
# bfs
h = {e.id : e for e in employees}
result = 0
q = [h[id]]
while q:
temp = []
for e in q:
result += e.importance
for s in e.subordinates:
temp.append(h[s])
q = temp
return result
# dfs
h = {e.id : e for e in employees}
def dfs(id):
return h[id].importance + sum(dfs(x) for x in h[id].subordinates)
return dfs(id)