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

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

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

示例 1:

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

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

来源:力扣(LeetCode)


此题和N叉树的最大深度有相似之处。
思路:先找到员工的ID,之后再找这个员工的下属subordinates。依次遍历下属,先找到下属的ID,再找他的subordinates。。。。。果真递归。写了这些递归题,感觉更得心应手了。是不是错觉呢。。。。

int getImportance(vector<Employee*> employees, int id) {int ans;for(auto a:employees){if(a->id==id){ans=a->importance;if(a->subordinates.size()==0) return ans;for(auto b:a->subordinates){ans=getImportance(employees,b)+ans;}   }}return ans;}

看了题解,用map做了下优化。省去了查找ID的循环。无序比有序更节约时间。

    unordered_map<int,Employee*>node;int getImportance(vector<Employee*> employees, int id) {for(auto a:employees){node[a->id]=a;}   return dfs(id);}int dfs(int id){Employee *p=node[id];int ans=p->importance;for(auto a:p->subordinates){ans+=dfs(a);}return ans;}

690.员工的重要性相关推荐

  1. 690. 员工的重要性

    690. 员工的重要性 原文:原文链接 给定一个保存员工信息的数据结构,它包含了员工唯一的id,重要度 和 直系下属的id. 比如,员工1是员工2的领导,员工2是员工3的领导.他们相应的重要度为15, ...

  2. leetcode 690. 员工的重要性(dfs)

    给定一个保存员工信息的数据结构,它包含了员工 唯一的 id ,重要度 和 直系下属的 id . 比如,员工 1 是员工 2 的领导,员工 2 是员工 3 的领导.他们相应的重要度为 15 , 10 , ...

  3. LeetCode 690. 员工的重要性(图的DFSBFS)

    文章目录 1. 题目 2. 解题 2.1 DFS 2.2 BFS 1. 题目 给定一个保存员工信息的数据结构,它包含了员工唯一的id,重要度 和 直系下属的id. 比如,员工1是员工2的领导,员工2是 ...

  4. Java——员工的重要性

    题目链接 leetcode在线oj题--员工的重要性 题目描述 给定一个保存员工信息的数据结构,它包含了员工 唯一的 id ,重要度 和 直系下属的 id . 比如,员工 1 是员工 2 的领导,员工 ...

  5. Leetcode每日一题:690.employee-importance(员工的重要性)

    思路:找下属,求重要性和直接用BFS即可,关键是这里的数据结构不是链表,如何最快速度找到下属是最重要的:这里我用map将每个员工的id-下标索引存储起来,直接通过id得到其员工属性: int getI ...

  6. leetcode690. 员工的重要性(bfs)

    给定一个保存员工信息的数据结构,它包含了员工唯一的id,重要度 和 直系下属的id. 比如,员工1是员工2的领导,员工2是员工3的领导.他们相应的重要度为15, 10, 5.那么员工1的数据结构是[1 ...

  7. Leetcode690.Employee Importance员工的重要性

    给定一个保存员工信息的数据结构,它包含了员工唯一的id,重要度 和 直系下属的id. 比如,员工1是员工2的领导,员工2是员工3的领导.他们相应的重要度为15, 10, 5.那么员工1的数据结构是[1 ...

  8. LC690. 员工的重要性

    BFS,这题主要考察对数据结构的掌握,把员工的数据以哈希表的形式进行存储,通过id获取整个员工的信息 def getImportance(self, employees, id):"&quo ...

  9. C#LeetCode刷题-广度优先搜索

    广度优先搜索篇 # 题名 刷题 通过率 难度 101 对称二叉树 42.1% 简单 102 二叉树的层次遍历 49.7% 中等 103 二叉树的锯齿形层次遍历 43.0% 中等 107 二叉树的层次遍 ...

最新文章

  1. openEuler系统配置yum镜像源
  2. vue操作dom_vue源码全面解析(四十六)源码中操作DOM的方法集合
  3. ps怎么一下选中多个图层_PS图层基本操作,零基础小白必学
  4. *dev=filp-private_data;这一句的理解
  5. jdbc写入和读取过程
  6. 第 1 节:前端面试指南 — 简历篇
  7. linux 变量c file代表的内容.,LinuxC编程基础--mak.ppt
  8. android退出一个含有listview的activity时报java.lang.IllegalA
  9. 【漏洞公告】高危:Windows系统 SMB/RDP远程命令执行漏洞
  10. 阿里巴巴Java开发文档2020版学习-日期时间
  11. hbase版本与Hadoop版本支持关系(官方)
  12. servlet实现统计网站访问量
  13. 张云茹计算机,重庆理工大学药学与生物工程学院研究生导师简介-张云茹
  14. mysql增加连接_mysql增加连接数
  15. python storm连接mysql_Python ORM Storm 源码修改
  16. 局域网计算机间的传输介质,计算机局域网知识点:传输介质
  17. 基于安卓平台,客户端视频监控的实现(三)
  18. Java、统计正数和负数的个数然后计算这些数的平均值
  19. Linux系统高树攀登之路
  20. R语言C指数,如何在R软件中求一致性指数( Harrell concordance index:C-index)?

热门文章

  1. 【从零学习OpenCV 4】opencv_contrib扩展模块的安装
  2. Mysql从5.0升级到 5.1.73
  3. Linux 4.18 内核新补丁移除了Lustre 文件系统
  4. 2013-7-12学习笔记
  5. mysql root的密码忘了?linux下重置mysql的root用户密码。
  6. Spring中jdbcTemplate的用法实例
  7. 分享一例脚本发版和tomcat重启脚本
  8. “笨方法”学习Python笔记(2)-VS Code作为文本编辑器以及配置Python调试环境
  9. vim中权限不足时不用退出而强制保存
  10. 分享一个监控MFS的nagios插件