> For the complete documentation index, see [llms.txt](https://dfine.gitbook.io/leetcode/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://dfine.gitbook.io/leetcode/690.employee_importance.md).

# 690.Employee Importance

**690.Employee Importance**

难度:Easy

> 给定一个保存员工信息的数据结构，它包含了员工唯一的id，重要度 和 直系下属的id。

比如，员工1是员工2的领导，员工2是员工3的领导。他们相应的重要度为15, 10, 5。那么员工1的数据结构是\[1, 15, \[2]]，员工2的数据结构是\[2, 10, \[3]]，员工3的数据结构是\[3, 5, \[]]。注意虽然员工3也是员工1的一个下属，但是由于并不是直系下属，因此没有体现在员工1的数据结构中。

现在输入一个公司的所有员工信息，以及单个员工id，返回这个员工和他所有下属的重要度之和。

```
示例 1:

输入: [[1, 5, [2, 3]], [2, 3, []], [3, 3, []]], 1
输出: 11
解释:
员工1自身的重要度是5，他有两个直系下属2和3，而且2和3的重要度均为3。因此员工1的总重要度是 5 + 3 + 3 = 11。
```

注意:

一个员工最多有一个直系领导，但是可以有多个直系下属 员工数量不超过2000。

DFS，通过递归解决。

```
/*
// 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 {
private:
    int getIndex(vector<Employee*> employees, int id)
    {
        for(int i=0;i<employees.size();i++)
            if(employees[i]->id ==id)
                return i;
        return -1;
    }
public:
    int getImportance(vector<Employee*> employees, int id) {
        int ind=getIndex(employees,id);
        int res=employees[ind]->importance;
        for(auto i: employees[ind]->subordinates)
        {
            int n=getIndex(employees,i);
            if(employees[n]->subordinates.empty())
            res+= employees[n]->importance;
            else
                res+=getImportance(employees,employees[n]->id);
            
        }

        return res;
        
    }
};
```

> 执行用时 : 56 ms, 在Employee Importance的C++提交中击败了77.53% 的用户 内存消耗 : 41 MB, 在Employee Importance的C++提交中击败了5.36% 的用户


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://dfine.gitbook.io/leetcode/690.employee_importance.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
