leetcode 690.员工的重要性

题目:

给定一个保存员工信息的数据结构,它包含了员工唯一的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。

注意:

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

分析:

这个题目dfs和bfs都可以做,但是bfs更简单,因为只要你一层一层向下遍历,就不会出现重复和遗漏的情况。

代码:

 1 //25ms 40%
 2 class Solution {
 3     public int getImportance(List<Employee> employees, int id) {
 4         Queue<Employee> que = new LinkedList<Employee>();
 5         int imp=0;
 6         for(int n=0;n<employees.size();++n)
 7             if(employees.get(n).id==id) {
 8                 que.add(employees.get(n));
 9                 imp+=employees.get(n).importance;
10                 break;
11             }
12         while(!que.isEmpty()) {
13             Employee e=que.poll();
14             for(int m=0;m<e.subordinates.size();++m) {
15                 for(int n=0;n<employees.size();++n) {
16                     if(employees.get(n).id==e.subordinates.get(m)) {
17                         que.add(employees.get(n));
18                         imp+=employees.get(n).importance;
19                         break;
20                     }
21                 }
22             }
23         }
24         return imp;
25     }
26 }

原文地址:https://www.cnblogs.com/CHAHA123/p/10736386.html

时间: 2024-10-09 05:36:19

leetcode 690.员工的重要性的相关文章

690. 员工的重要性

题目: 给定一个保存员工信息的数据结构,它包含了员工唯一的id,重要度 和 直系下属的id. 比如,员工1是员工2的领导,员工2是员工3的领导.他们相应的重要度为15, 10, 5.那么员工1的数据结构是[1, 15, [2]],员工2的数据结构是[2, 10, [3]],员工3的数据结构是[3, 5, []].注意虽然员工3也是员工1的一个下属,但是由于并不是直系下属,因此没有体现在员工1的数据结构中. 现在输入一个公司的所有员工信息,以及单个员工id,返回这个员工和他所有下属的重要度之和.

[LeetCode]690. Employee Importance员工重要信息

哈希表存id和员工数据结构 递归获取信息 public int getImportance(List<Employee> employees, int id) { Map<Integer,Employee> map = new HashMap<>(); for (int i = 0; i < employees.size(); i++) { Employee temp = employees.get(i); map.put(temp.id,temp); } ret

LeetCode - 690. Employee Importance

You are given a data structure of employee information, which includes the employee's unique id, his importance value and his directsubordinates' id. For example, employee 1 is the leader of employee 2, and employee 2 is the leader of employee 3. The

[LeetCode] 690. Employee Importance_Easy tag: BFS

You are given a data structure of employee information, which includes the employee's unique id, his importance value and his directsubordinates' id. For example, employee 1 is the leader of employee 2, and employee 2 is the leader of employee 3. The

leet

# 题名1 两数之和    2 两数相加    3 无重复字符的最长子串    4 寻找两个有序数组的中位数    5 最长回文子串    6 Z 字形变换    7 整数反转    8 字符串转换整数 (atoi)    9 回文数    10 正则表达式匹配    11 盛最多水的容器    12 整数转罗马数字    13 罗马数字转整数    14 最长公共前缀    15 三数之和    16 最接近的三数之和    17 电话号码的字母组合    18 四数之和    19 删除链表

如何成为一位优秀的创业CEO

编者按:本文来自 Ryan Allis,是一位来自旧金山的创业者和投资人.在 2003 年创立了 iContact,并任 CEO. 做创业公司的 CEO 可以说是世界上最有挑战性的事情之一.你得让客户喜欢你的产品,得组建团队,还要想办法从客户.合作者和投资者那里拿到资金:并且要指导整个工作流程的优化. 在我看来,要扮演好创业公司 CEO 这个角色,最重要的有三点: 1.你所做的产品一定要能解决客户某个实际的需求(然后说服客户为它买单). 2.要确保用户和客户对你的产品有着十分积极的情感体验. 3

管理没有完美 只有和谐

赢在和谐 第一部分:管理没有完美 只有和谐 前 言 和谐是当今社会发展的主旋律,在社会各方面.各层次.各领域的竞争达到白热化的情况下,提倡和谐无疑具有重大的意义.因为人们已经开始充分认识到,只有和谐才能发展:只有和谐才能进步:只有和谐才能实现终极突破. 和谐的发展观为企业的发展提供了一个崭新的思路.在市场竞争日益激烈的情况下,企业耗费很大的精力才有可能获得竞争的胜利.然而,胜利的结果通常不是丰厚的利润:相反,还有可能是巨额的亏损.在疲于应对外部竞争的同时,企业的领导者还不得不应对企业内部员工的竞

【会点办会指南】参展企业常见的七种错误

核心提示:第一.目标不明确.第二.不重视参展商的需求.第三.忽略员工的重要性.第四.不善于收集信息.第五.错过展览会评估.第六.不爱阅读参展商手册.第七.忽略展会后期工作的跟进. 近几年,展览业各种骗展招数尽显.尽管这样,有些参展商.参展企业还是屡次被骗,为了进一步保护广大参展商.参展企业的利益,我们总结出以下7条参展商.参展企业常犯的错误,希望能给参展商.参展企业带来警示. 第一.目标不明确. 每场展会都要有明确目标,只有明确在展会中的方向才能完成一场展会的工作,如主题.展馆布局.产品摆设等等

思考出真知之日出日落第一部-公司篇?

转眼间,一年的时间又快过去了,这一年里面我们有累过,有苦过,有伤心,有开心......,但这都已经属于过去,感谢岁月给予我这么难道的磨练机会,让我      对自己的定位也越来越明确,知道自己需要什么,还缺什么?该怎么去改进自己,提高自己,这段时间我要将我这一年的体验分享给大家,希望对大家有所帮助,如果没有就当看我的经历,博大家一笑,首先我将从公司说起,然后到个人最后到团队. 1.软件公司中项目经理的角色很重要 (1).当公司接项目的时候,领导会找项目经理确认项目需求,这个大家也都是知道的,这时