题目中提到的结构有点像树的结构,因此考虑用递归的方法。
class Solution {
public:
int getImportance(vector<Employee*> employees, int id) {
for (int i = 0; i < employees.size(); i++)
{
int sum = 0;
if (employees[i]->id == id)
{
for (int j = 0; j < (employees[i]->subordinates).size(); j++)
sum = sum + getImportance(employees, (employees[i]->subordinates)[j]);
return employees[i]->importance + sum;
}
}
return 0;
}
};