/** * Definition for Employee. * function Employee(id, importance, subordinates) { * this.id = id; * this.importance = importance; * this.subordinates = subordinates; * } */ /** * @param {Employee[]} employees * @param {number} id * @return {number} */ var GetImportance = function(employees, id) { let map = new Map(); for(let em of employees){ map.set(em.id, em); } const dfs = (id)=>{ let ca = map.get(id); let total = ca.importance; for(let sub of ca.subordinates){ total+=dfs(sub); } return total; } return dfs(id); };
示例:
输入:[[1, 5, [2, 3]], [2, 3, []], [3, 3, []]], 1 输出:11 解释: 员工 1 自身的重要度是 5 ,他有两个直系下属 2 和 3 ,而且 2 和 3 的重要度均为 3 。因此员工 1 的总重要度是 5 + 3 + 3 = 11 。提示:
一个员工最多有一个 直系 领导,但是可以有多个 直系 下属 员工数量不超过 2000 。