Leetcode690.Employee Importance员工的重要性

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

 

 

方法一:

类似树的层次遍历

class Solution {
public:int getImportance(vector<Employee*> employees, int id){if(employees.size() == 0)return 0;int sum = 0;map<int, Employee*> check;for(int i = 0; i < employees.size(); i++){check[employees[i] ->id] = employees[i];}queue<Employee*> q;q.push(check[id]);while(!q.empty()){int len = q.size();for(int i = 0; i < len; i++){Employee* temp = q.front();q.pop();sum += temp ->importance;for(int j = 0; j < temp ->subordinates.size(); j++){q.push(check[temp ->subordinates[j]]);}}}return sum;}
};

 

转载于:https://www.cnblogs.com/lMonster81/p/10434012.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/396159.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux进程管理类命令大全,Linux进程管理类命令

一、htop命令选项-d #&#xff1a;指定延迟时间间隔&#xff1b;-u UserName&#xff1a;仅显示指定用户的进程&#xff1b;-s COLUME&#xff1a;以指定字段进行排序&#xff1b;子命令&#xff1a;l&#xff1a;显示选定的进程打开的文件列表&#xff1b;s&#xff1a;跟踪选…

C#操作Excel

1.System.Data.DataTable连接数据库 ExcelFile 是excel的完整路径//OleDbConnection conExcel new OleDbConnection("ProviderMicrosoft.Jet.OLEDB.4.0;Data Source" ExcelFile ";Extended PropertiesExcel 8.0");//if (conExcel.State ConnectionStat…

android抓包工具——使用fiddler4在安卓手机抓包

Fiddler是一款非常流行并且实用的http抓包工具&#xff0c;它的原理是在本机开启了一个http的代理服务器&#xff0c;然后它会转发所有的http请求和响应&#xff0c;因此&#xff0c;它比一般的firebug或者是chrome自带的抓包工具要好用的多。不仅如此&#xff0c;它还可以支持…

rust风化速度_反驳《Golang、Rust的执行速度的对照,让人大吃一惊。》——不会别瞎说...

首先我无意引战&#xff0c;但是今天看到某位同学的文章里有某些错误&#xff0c;不得不指正一下。1. 测量时间的时候我们使用 std::time::SystemTime::elapsed 即可&#xff0c;不必蹩脚的使用两个 system 输出出来还得手动算一下。(当然你说对Rust不熟也就无所谓了)2. 最重要…

css flexbox模型_代码简介:CSS Flexbox有点像旅行

css flexbox模型Here are three stories we published this week that are worth your time:这是我们本周发布的三个值得您关注的故事&#xff1a; CSS Flexbox explained by road tripping across the country: 7 minute read CSS Flexbox在全国各地的旅途中进行了解释&#…

Sharepoint 2013设置customErrors

原文地址&#xff1a;http://www.cnblogs.com/renzh/archive/2013/03/05/2944309.html#3407239 一、首先设置IIS中的Web.config文件 找到对应的IIS应用程序目录&#xff0c;如&#xff1a;C:\inetpub\wwwroot\wss\VirtualDirectories\3000 在此文件夹下包含一个web.config文件&…

ddt数据驱动

数据驱动原理 1.测试数据为多个字典的list类型 2.测试类前加修饰ddt.ddt 3.case前加修饰ddt.data() 4.运行后用例会自动加载成三个单独的用例 5.测试结果&#xff1a; Testing started at 21:51 ...start!{username: selenium\xe7\xbe\xa4, psw: 232607095}end!start!{username…

http协议报文体_HTTP报文基本概念学习

HTTP是什么HTTP是HyperText Transfer Protocol的缩写,中文就是超文本传输协议,所谓的超,是个学术用语,是基于某种事物增加了更多的信息维度,比如超像素xxx之类的.协议是什么,协议说白了就是约定,约定就是模板,就是表格,就和你去银行办手续一样,客户不知道要提供什么信息,银行又…

yeoman_使用yeoman轻松创建Yeoman生成器

yeomanby Krist Wongsuphasawat克里斯特旺苏帕萨瓦(Krist Wongsuphasawat) 使用yeoman轻松创建Yeoman生成器 (Creating Yeoman generators easily with yeoman-easily) I’ve used Yeoman to start many of my projects. It’s an amazing web scaffolding tool.我已经用Yeoma…

linux 轻量化图形界面,YOXIOS 入门教程--基于Linux的 轻量化GUI图形系统和硬件平台(41页)-原创力文档...

YOXIOS --基于 Linux 的轻量化 GUI图形系统和硬件平台YOXIOS 入门教程基于 Linux 的 轻量化 GUI图形系统和硬件平台(V1.0 2020-05)提示&#xff1a;阅读此文档需要有一定的单片机开发、C/C编程语言、和使用 IDE开发工具的基础YOXIOS (C) 2020 游芯科技第 1 页 共 41 页YOXIOS -…

第一阶段 XHTML.定位样式

一位初学php的随堂笔记&#xff0c;记录自己的成长&#xff01; 1.清除浮动 (1)格式 clear:both清除两边|left清除左边 right清除右边 高度塌陷:父元素中的子元素都浮动&#xff0c;而父元素 没有设置高&#xff0c;那父元素的高为0 &#xff08;2&#xff09;万能清除(在父元素…

Canvas入门06-线段与像素边界

我们知道&#xff0c;使用以下2个API可以绘制一条线段&#xff1a; moveTo(x, y) 向当前路径中增加一条子路径&#xff0c;该子路径只包含一个点&#xff0c;此为线段的起始点lineTo(x, y) 将线段的下一个点加入子路径中context.strokeStyle rgb(200, 200, 0); context.lineWi…

函数表达书-读书笔记

定义函数的方式有两种&#xff1a;一种是函数声明&#xff0c;另一种就是函数表达式。函数声明的语法如下&#xff1a; function functionName(arg0,arg1,arg2){//函数体 } 函数声明&#xff0c;有一个重要特征就是函数声明提升。也就是在执行代码之前会先读取函数声明&#xf…

vue截取一个字符串_vue 截取字符串

let str abcdef;// 0str str.slice(0);//返回整个字符串 abcdefstr str.substring(0);//返回整个字符串 abcdefstr str.substr(0);//返回整个字符串 abcdef// 使用一个参数str str.slice(2);//截取第二个之后所有的字符 cdefstr str.substring(2);//截取第二个之后所有的…

网络工程师需要哪些知识_成长工程师可以教给我们哪些工程知识

网络工程师需要哪些知识I’ve been working as an engineer on the growth team at Airbnb for a couple of months now.我已经在Airbnb的成长团队担任工程师几个月了。 Since I’m in an environment full of passionate developers, I wanted to share some of the good eng…

linux父进程循环,LINUX C 父进程建立多个子进程循环非堵塞回收列子

下面 代码主要用于复习&#xff0c;留于此点击(此处)折叠或打开/*************************************************************************> File Name: fork5.c> Author: gaopeng QQ:22389860 all right reserved> Mail: gaopp_200217163.com> Created Time: …

服务器自动运行python_在虚拟主机中安装了python程序,如何使它在服务器上自动运行?...

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":3,"count":3}]},"card":[{"des":"IP地理位置库(GeoIP Databases)是对运营商分…

模拟测试

题解&#xff1a; 3道水题。。 1。生活大爆炸版剪刀石头布 忘记怎么打f[5][5]{}这个了。。 然后发现里面啥都不加也可以 加的话要是{} 2.送礼物 双向搜 有点卡常数。。 我没写dfs 写了dp求多少&#xff08;好智障啊。。 访问数组挺慢的所以应该速度差不多。。&#xff09; lowb…

javascript闭包_通过邮寄包裹解释JavaScript闭包

javascript闭包by Kevin Kononenko凯文科诺年科(Kevin Kononenko) 通过邮寄包裹解释JavaScript闭包 (JavaScript Closures Explained by Mailing a Package) 如果您以前寄过包裹或信件&#xff0c;那么您可以了解JavaScript中的闭包。 (If you have mailed a package or lette…