LeetCode 690 员工的重要性
方法1:DFS + 哈希表
/*
// Definition for Employee.
class Employee {
public int id;
public int importance;
public List<Integer> subordinates;
};
*/
class Solution {
HashMap<Integer, Employee> map = new HashMap<Integer, Employee>();
public int getImportance(List<Employee> employees, int id) {
for (Employee employee : employees)
map.put(employee.id, employee);
return dfs(id);
}
int dfs(int fa) {
int ans = map.get(fa).importance;
for (int son : map.get(fa).subordinates)
ans += dfs(son);
return ans;
}
}
"""
# 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:
dic = {e.id : e for e in employees}
def dfs(fa: int) -> int:
ans = dic[fa].importance
for son in dic[fa].subordinates:
ans += dfs(son)
return ans
return dfs(id)
方法2:BFS + 哈希表
/*
// Definition for Employee.
class Employee {
public int id;
public int importance;
public List<Integer> subordinates;
};
*/
class Solution {
public int getImportance(List<Employee> employees, int id) {
HashMap<Integer, Employee> map = new HashMap<Integer, Employee>();
for (Employee employee : employees)
map.put(employee.id, employee);
// LinkedList 实现了 Queue 接口
Queue<Integer> queue = new LinkedList<Integer>();
int ans = 0; queue.offer(id);
while (!queue.isEmpty()) {
int fa = queue.poll();
ans += map.get(fa).importance;
for (int son : map.get(fa).subordinates)
queue.offer(son);
}
return ans;
}
}
"""
# 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:
from collections import deque
dic = {e.id : e for e in employees}
queue = deque([id]); ans = 0
while queue:
fa = queue.popleft()
ans += dic[fa].importance
for son in dic[fa].subordinates:
queue.append(son)
return ans
标签:26,int,subordinates,08,2024,importance,ans,Employee,id
From: https://www.cnblogs.com/XuGui/p/18380775