leetcode 690. Employee Importance 深度优先遍历DFS
来源:互联网 发布:Ubuntu连不上WIFI 编辑:程序博客网 时间:2024/06/07 18:31
You are given a data structure of employee information, which includes the employee’s unique id, his importance value and his direct subordinates’ id.
For example, employee 1 is the leader of employee 2, and employee 2 is the leader of employee 3. They have importance value 15, 10 and 5, respectively. Then employee 1 has a data structure like [1, 15, [2]], and employee 2 has [2, 10, [3]], and employee 3 has [3, 5, []]. Note that although employee 3 is also a subordinate of employee 1, the relationship is not direct.
Now given the employee information of a company, and an employee id, you need to return the total importance value of this employee and all his subordinates.
Example 1:
Input: [[1, 5, [2, 3]], [2, 3, []], [3, 3, []]], 1
Output: 11
Explanation:
Employee 1 has importance value 5, and he has two direct subordinates: employee 2 and employee 3. They both have importance value 3. So the total importance value of employee 1 is 5 + 3 + 3 = 11.
Note:
One employee has at most one direct leader and may have several subordinates.
The maximum number of employees won’t exceed 2000.
本题题意很简单,就是做一个递归搜索即可
代码如下:
#include <iostream>#include <vector>#include <map>#include <set>#include <queue>#include <stack>#include <string>#include <climits>#include <algorithm>#include <sstream>#include <functional>#include <bitset>#include <numeric>#include <cmath>#include <regex>using namespace std;/*// Employee infoclass 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) { if (employees.size() <= 0) return 0; else { Employee* tar = NULL; for (auto i : employees) { if (i->id == id) { tar = i; break; } } int sum = tar->importance; for (int next : tar->subordinates) { sum += getImportance(employees, next); } return sum; } }};
- leetcode 690. Employee Importance 深度优先遍历DFS
- DFS:690. Employee Importance
- [LeetCode] 690. Employee Importance
- leetcode 690. Employee Importance
- [LeetCode] 690. Employee Importance
- leetcode-690. Employee Importance
- LeetCode 690.Employee Importance
- Leetcode:690. Employee Importance
- 690 leetcode employee importance
- LeetCode # 690 Employee Importance
- LeetCode.690 Employee Importance
- LeetCode-- Employee Importance
- LeetCode 之 DFS 深度优先遍历
- 690. Employee Importance
- 690. Employee Importance
- 690. Employee Importance
- 690. Employee Importance
- 690. Employee Importance
- kali linux不能进入win8和不能连网的修复过程
- Android 封装工具类之App
- c++与java区别的理解(二)--处理参数顺序和输出编译顺序
- is not a valid wheel filename
- neutron基本知识与图解
- leetcode 690. Employee Importance 深度优先遍历DFS
- 手机号发送验证码
- R语言之饼状图
- Android锁屏勒索病毒分析(4)秒抢红包
- SVM算法
- opencv3/C++基于颜色的目标跟踪
- [后缀数组] BZOJ4650: [Noi2016] 优秀的拆分
- Android 封装工具类之文件缓存
- 字符编码简介:ASCII,Unicode,UTF-8,GB2312及Unicode和UTF-8如何转化