/* // Definition for Employee. class Employee { public: int id; int importance; vector<int> subordinates; }; */ class Solution { public: int vis[10010]; int dfs(Employee *p, vector<Employee*> employees) { if(p == NULL) return 0; // cout << 1111 << endl; int sum = 0; sum += p->importance; int n = (p->subordinates).size(); for(int i = 0; i < n; i++) { sum += dfs(employees[vis[p->subordinates[i]]], employees); } return sum; } int getImportance(vector<Employee*> employees, int id) { int n = employees.size(); memset(vis, 0, sizeof(vis)); for(int i = 0; i < n; i++) vis[employees[i]->id] = i; return dfs(employees[vis[id]], employees); } };
原文:https://www.cnblogs.com/WTSRUVF/p/14726008.html