本文主要是介绍员工的重要性,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
员工的重要性,深度优先算法
package org.example;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Main {public static void main(String[] args) {}// 员工的重要性// 你有一个保存员工信息的数据结构,它包含了员工唯一的 id ,重要度和直系下属的 id 。// 给定一个员工数组 employees,其中:// employees[i].id 是第 i 个员工的 ID。// employees[i].importance 是第 i 个员工的重要度。// employees[i].subordinates 是第 i 名员工的直接下属的 ID 列表。// 给定一个整数 id 表示一个员工的 ID,返回这个员工和他所有下属的重要度的 总和。// 输入:employees = [[1,5,[2,3]],[2,3,[]],[3,3,[]]], id = 1// 输出:11// 解释:// 员工 1 自身的重要度是 5 ,他有两个直系下属 2 和 3 ,而且 2 和 3 的重要度均为 3 。因此员工 1 的总重要度是 5 + 3 + 3 = 11Map<Integer,Employee> map = new HashMap<Integer,Employee>();public int getImportance(List<Employee> employees,int id){for(Employee employee:employees){map.put(employee.id,employee);}return dfs(id);}private int dfs(int id) {Employee employee=map.get(id);int total = employee.importance;List<Integer> subordinates = employee.subordinates;for(int subId:subordinates){total+=dfs(subId);}return total;}
}
这篇关于员工的重要性的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!