原题链接
思路分析:
我们可以将员工之间的关系抽象为一棵树,那么原题问的就是以
i
d
id
id 为根节点的子树的所有节点的和。
定义函数的功能为:返回以
i
d
id
id 为根节点的子树的所有节点的和。采用
D
F
S
DFS
DFS 便利便可求解。
C
o
d
e
:
Code:
Code:
/*
// Definition for Employee.
class Employee {
public:
int id;
int importance;
vector<int> subordinates;
};
*/
class Solution {
public:
int getImportance(vector<Employee*> employees, int id) {
int ans = 0;
for( auto C1 : employees ){
if( C1->id == id ){
ans += C1->importance;
for( auto C2 : C1->subordinates ){
ans += getImportance(employees, C2);
}
}
}
return ans;
}
};