1、
/*
// Definition for Employee.
class Employee {
public:
int id;
int importance;
vector<int> subordinates;
};
*/
class Solution {
public:
int getImportance(vector<Employee*> employees, int id) {
unordered_map<int,Employee*> mp;
for(auto employee:employees)
{
mp[employee->id]=employee;
}
return dfs(mp,id);
}
int dfs(unordered_map<int, Employee*> mp, int id)
{
if(mp.find(id)==mp.end())
{
return 0;
}
queue<Employee*> que;
que.push(mp[id]);
int ans=0;
while(!que.empty())
{
Employee* curr=que.front();
que.pop();
ans+=curr->importance;
for(auto sub:curr->subordinates)
{
que.push(mp[sub]);
}
}
return ans;
}
};