690. Employee Importance

/*
// Employee info
class Employee {
public:
    // It's the unique ID of each node.
    // unique id of this employee
    int id;
    // the importance value of this employee
    int importance;
    // the id of direct subordinates
    vector<int> subordinates;
};
*/
class Solution {
public:
    int getImportance(vector<Employee*> employees, int id) {
        int importance = 0;
        queue<Employee*> q;
        unordered_map<int,Employee*> employeesRelation;
        for(Employee* employee : employees){
            if(employeesRelation.find(employee->id)==employeesRelation.end()){
                employeesRelation[employee->id] =  employee  ;
            }
            if(id == employee->id) {
                q.push(employee);
            }
        }
        while(!q.empty()){
            Employee * cur = q.front();
            q.pop();
            importance+=cur->importance;
            for(auto e:cur->subordinates){
                q.push(employeesRelation[e]);
            }
        }
        return importance;
    }
};

results matching ""

    No results matching ""