leetcode 690.员工的重要性
2024-10-08 17:59:47
题目:
给定一个保存员工信息的数据结构,它包含了员工唯一的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。
分析:
这个题目dfs和bfs都可以做,但是bfs更简单,因为只要你一层一层向下遍历,就不会出现重复和遗漏的情况。
代码:
//25ms 40%
class Solution {
public int getImportance(List<Employee> employees, int id) {
Queue<Employee> que = new LinkedList<Employee>();
int imp=0;
for(int n=0;n<employees.size();++n)
if(employees.get(n).id==id) {
que.add(employees.get(n));
imp+=employees.get(n).importance;
break;
}
while(!que.isEmpty()) {
Employee e=que.poll();
for(int m=0;m<e.subordinates.size();++m) {
for(int n=0;n<employees.size();++n) {
if(employees.get(n).id==e.subordinates.get(m)) {
que.add(employees.get(n));
imp+=employees.get(n).importance;
break;
}
}
}
}
return imp;
}
}
最新文章
- 转:在java中使用dom4j解析xml
- 基于webrtc的资源释放问题(一)
- JMS介绍入门大白话版
- webservice 协议
- mysql中explain看性能
- require.js入门指南(二)
- centos7安装chrome及加载poatman开发插件
- CSS3属性值之box-shadow
- c++ :: 域操作符
- TOJ4114(活用树状数组)
- cu命令
- 简单有效:解决 Excel 打开 UTF-8 编码 CSV 文件乱码的 BUG
- 关于报错:There is already &#39;xxxController&#39; bean method的解决方法
- CentOS ln 链接
- g++编译后中文显示乱码解决方案
- 服务器能ping通ip,通不了域名解决方案
- 8-1 Stacks of Flapjacks UVA120
- python opencv3 图像与原始字节转换
- PHP的钩子实现解析
- 【free() invalid next size】谨慎地在C++的类中存储指针来方便访问其他节点
热门文章
- 禁用u盘再启用
- CentOS7基于http方式搭建本地yum源
- Day4-T2
- php.laravel.部署
- servlet 之 HttpServlet抽象类详解
- Windows + Python + flup + flask + fastcgi + Nginx配置
- UVA - 12118 Inspector&#39;s Dilemma(检查员的难题)(欧拉回路)
- df 、dh
- LIS是什么?
- Sequence Models Week 1 Character level language model - Dinosaurus land