【精】LintCode领扣算法问题答案:1082. 员工的重要度
发布日期:2021-06-30 17:09:46 浏览次数:3 分类:技术文章

本文共 1652 字,大约阅读时间需要 5 分钟。

1082. 员工的重要度

描述

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

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

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

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

样例 1:

输入: 	employees = [[1,2,[2]], [2,3,[]]], id = 2输出: 	3解释:	员工2的重要度为3。

样例 2:

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


文章目录


题解

/*// Employee infoclass Employee {    // It's the unique id of each node;    // unique id of this employee    public int id;    // the importance value of this employee    public int importance;    // the id of direct subordinates    public List
subordinates;};*/public class Solution {
/** * @param imput: * @param id: * @return: the total importance value */ public int getImportance(List
employees, int id) {
// Write your code here. int ret = 0; Map
employeeMap = new HashMap<>(); for (Employee e : employees) {
employeeMap.put(e.id, e); } Queue
q = new LinkedList<>(); q.offer(employeeMap.get(id)); while (!q.isEmpty()) {
Employee e = q.poll(); ret += e.importance; for (Integer eId : e.subordinates) {
q.offer(employeeMap.get(eId)); } } return ret; }}

最后说两句

非常感谢你阅读本文章,如果你觉得本文对你有所帮助,请留下你的足迹,点个赞,留个言,多谢~

作者水平有限,如果文章内容有不准确的地方,请指正。

希望小伙伴们都能每天进步一点点。

声明

本文由博客原创,转载请注明来源,谢谢~

转载地址:https://le-yi.blog.csdn.net/article/details/108809370 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:领扣LintCode算法问题答案-1085. 最长的单一路径
下一篇:领扣LintCode算法问题答案-1080. 最大的岛

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年04月07日 23时10分18秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章