lc 690 Employee Importance


690 Employee Importance

You are given a data structure of employee information, which includes the employee's unique id, his importance value and his direct subordinates' id.

For example, employee 1 is the leader of employee 2, and employee 2 is the leader of employee 3. They have importance value 15, 10 and 5, respectively. Then employee 1 has a data structure like [1, 15, [2]], and employee 2 has [2, 10, [3]], and employee 3 has [3, 5, []]. Note that although employee 3 is also a subordinate of employee 1, the relationship is not direct.

Now given the employee information of a company, and an employee id, you need to return the total importance value of this employee and all his subordinates.

Example 1:

Input: [[1, 5, [2, 3]], [2, 3, []], [3, 3, []]], 1
Output: 11

Note:

  1. One employee has at most one direct leader and may have several

    subordinates.
  2. The maximum number of employees won't exceed 2000.

BFS Accepted##

很经典的可以用BFS算法快速解决的问题。唯一需要注意的是push进队列的应该为id-1,而不是id,因为它是vector的下标。

/*
// Employee info
class Employee {
public:
// It's the unique ID of each node.
// unique id of this employee
int id;
// the importance value of this employee
int importance;
// the id of direct subordinates
vector<int> subordinates;
};
*/
class Solution {
public:
int getImportance(vector<Employee*> employees, int id) {
if (!employees.size()) return 0;
int total_value = 0;
queue<int> q;
q.push(id-1);
while (!q.empty()) {
auto employee = employees[q.front()];
q.pop();
total_value += employee->importance;
for (auto i : employee->subordinates) q.push(i-1);
}
return total_value;
}
};

最新文章

  1. 终端mysql Operation not permitted错误解决方案
  2. 一步步学习javascript基础篇(7):BOM和DOM
  3. Linux学习笔记(17) Shell编程之基础
  4. 如何查看编译安装的lnmp环境各自的配置参数
  5. 基于Enterprise Library的Winform开发框架实现支持国产达梦数据库的扩展操作
  6. a标签有小手状和无小手状css属性
  7. JSP基本语法小结
  8. css体验优化之图片容器设置宽高比
  9. 人人都是 DBA(XI)I/O 信息收集脚本汇编
  10. hdu 4568 Hunter(spfa预处理 + 状压dp)
  11. iOS已发布应用中对异常信息捕获和处理
  12. swift3.0 coredata 的使用
  13. DEDE更改版权信息
  14. Linux随笔
  15. 每个程序员都应该学习使用Python或Ruby
  16. 在IOS应用中从竖屏模式强制转换为横屏模式
  17. 微服务架构的基础框架选择:Spring Cloud还是Dubbo?
  18. 莫烦theano学习自修第四天【激励函数】
  19. linux下执行sh脚本,提示Command not found解决办法
  20. Git学习笔记05-撤销修改

热门文章

  1. Servlet实现点击计数器
  2. openstack setup demo 前言
  3. Jsp+servlet 验证码案例
  4. spring SSH整合
  5. 手把手教你编写一个简单的PHP模块形态的后门
  6. python:functools之partial
  7. linux系统编程:线程同步-信号量(semaphore)
  8. C++ Primer高速入门之五:有用的模板库
  9. Lvs 负载均衡 (VS/NAT模式)
  10. 在阿里云域名https配置(nginx为例)