JZX轻语:简

LeetCode 690 - 员工的重要性

发表于2024年08月26日

#BFS #哈希表

挺简单的一个问题,首先使用一个哈希表记录员工的idEmployee对象的映射关系,然后使用BFS遍历员工的下属,累加重要性即可。

C++的做法:

/*
// 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*> id_to_employee;
        for(auto employee : employees) {
            id_to_employee[employee->id] = employee;
        }
        queue<int> q;
        int ans = 0;
        q.push(id);
        while (!q.empty()) {
            int cur = q.front(); q.pop();
            auto cur_employee = id_to_employee[cur];
            ans += cur_employee->importance;
            for (auto &subordinate_id: cur_employee->subordinates) q.push(subordinate_id);
        }
        return ans;
    }
};

闪念标签:LC

题目链接:https://leetcode.cn/problems/employee-importance/