/*class Employee {
public int id;
public int importance;
public List<Integer> subordinates;
};
*/
class Solution {
public int help(List<Employee> employees,Employee e) {
int count = 0;
if(e.subordinates.isEmpty()) {
return e.importance;
} else {
for(int i=0;i<e.subordinates.size();i++) {
int id = e.subordinates.get(i);
count += help(employees,getEmployee(employees,id));
}
return e.importance + count;
}
}
public Employee getEmployee(List<Employee> employees, int id) {
if(employees.isEmpty()) {
return null;
}
for (int i = 0; i < employees.size(); i++) {
Employee employee = employees.get(i);
if(employee.id==id) {
return employee;
}
}
return null;
}
public int getImportance(List<Employee> employees, int id) {
if(employees.isEmpty()) {
return -1;
}
Employee employee = getEmployee(employees,id);
if(employee==null) {
return -1;
}
int count = help(employees,employee);
return count;
}
}
Leetcode690:员工的重要性
原创
©著作权归作者所有:来自51CTO博客作者玄鸟轩墨的原创作品,请联系作者获取转载授权,否则将追究法律责任

提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
LeetCode_690. 员工的重要性
题目描述:
数据结构 叉树 传递参数 -
690. 员工的重要性
2021-05-01 LeetCode 每日一题链接:https://leetcode-cn.com/problems/employee-importance/这里可以使用BFS/DFS去解题。因为我递归用的不怎么熟悉,所以选择用递推的方式。因为题目提供的是员工的id,而我们需要计算员工的重要性,所以基本思路就是,先通过id拿到Employee,加入队列尾,每次循环,从队列头开始拿,直到队列为空,一次循环其实就相当于把某个员工的直接下属员工全部遍历了一遍。然后拿到该员工的直接下属员工,再加入队列尾。直
LeetCode每日一题 LeetCode leetcode 算法 queue -
LeetCode 第 690 号问题:员工的重要性
本
数据结构 广度优先遍历 题目解析 -
标准的重要性
在Internet冲浪中...看到了这样子问题:问题====Bool-->Void * 例子:
C++ C语言 编程 休闲 反汇编