(刷题笔记) Leetcode 690. 员工的重要性

690. 员工的重要性 这道题通过对“员工及下属”的遍历,练习了图的遍历和权值累计的技巧。两种实现方式(DFS 和 BFS)各有千秋,建议都掌握。核心思路是:构建 ID -> 员工对象的映射,然后遍历整棵“组织树”累计重要度。 阅读详情

题目

给定一个保存员工信息的数据结构,它包含了员工唯一的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)
链接:https://leetcode-cn.com/problems/employee-importance

解题思路

比较典型的深度优先搜索,本来想尝试写个非递归的方法,但是失败了,这个不是树,不知道怎么用栈写。
然后去解答区看了一下用map映射id,不知道是不是我没领会这个写法的精髓,最后提交用时很长。

代码(C++)

/*
// Definition for Employee.
class Employee {
public:
    int id;
    int importance;
    vector<int> subordinates;
};
*/

class Solution {
public:
    int getImportance(vector<Employee*> employees, int id) {
        
        Employee* root=NULL;

        for(auto emp:employees){
            if(emp->id==id){
                root=emp;
                break;
            }
        }

        int ans=root->importance;

        for(int sub:root->subordinates){

            ans+=getImportance(employees,sub);
        }

        return ans;
         
    }
};

map映射

/*
// Definition for Employee.
class Employee {
public:
    int id;
    int importance;
    vector<int> subordinates;
};
*/


class Solution {
public:

    void dfs(unordered_map<int,Employee*> mp,int id,int& ans){

        ans+=mp[id]->importance;

        for(int sub:mp[id]->subordinates){
           dfs(mp,sub,ans);
        }

    }
    int getImportance(vector<Employee*> employees, int id) {
        
       unordered_map<int,Employee*> mp;
       for(auto emp:employees){
           mp[emp->id]=emp;
       }

       int ans=0;

       dfs(mp,id,ans);

       return ans;

    }
};
【C++BFS】690. 员工的重要性 你有一个保存员工信息的数据结构,它包含了员工唯一的 id ,重要度和直系下属的 id 。 给定一个员工数组 employees,其中: employees[i].id 是第 i 个员工的 ID。 employees[i].importance 是第 i 个员工的重要度。 employees[i].subordinates 是第 i 名员工的直接下属的 ID 列表。 给定一个整数 id 表示一个员工的 ID,返回这个员工和他所有下属的重要度的 总和。 阅读详情

相关推荐

ADS笔记,新旧两组仿真数据进行绘图和列表对比

原理图器件参数的不同,怎么进行对比观看,操作如下。

彭辉荣的博客 3869

【LeetCode】第690题——员工的重要性(难度:简单)

【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的

Se7en_Dayz的博客 469

国产大模型编程能力深度分析报告(2026年5月更新版)

2026年5月国产大模型编程能力报告显示,主流模型迎来重大升级。DeepSeek V4以1.6T参数创性能新高,Qwen3.6-Plus支持原生多模态编程,MiniMax M2.7转向闭源并优化Agent编码,Kimi K2.6成为商业化成熟的主力模型,GLM-5开源并涨价30%。阿里云百炼推出双轨订阅体系,区分团队和个人开发者需求。各模型在参数规模、上下文长度、性能表现和适用场景上各具优势,国产AI编程服务正加速向订阅制转型,成本效益显著提升。

Willin Wang 的全栈升级指南 1652

LeetCode第690题 - 员工的重要性

LeetCode第690题 - 员工的重要性

流水账 1023

基于STM32与SimpleFOC实现直流无刷电机开环控制的实战指南

本文提供了一份基于STM32微控制器与SimpleFOC开源库实现直流无刷电机开环控制的详细实战指南。内容涵盖硬件连接、PlatformIO环境搭建、核心代码解析及上电测试,旨在帮助开发者快速验证硬件并理解开环控制的基本原理,为后续实现高性能的闭环FOC控制奠定基础。

xxx12的博客 960

SuperPoint与SuperGlue的C++ TensorRT工程化实战:从理论到部署的完整指南

本文详细介绍了如何将SuperPoint和SuperGlue算法通过C++和TensorRT进行工程化部署,从模型准备、格式转换到TensorRT引擎构建和C++推理实现。通过性能优化技巧和实际应用案例,展示了在边缘设备上实现实时特征匹配的完整流程,显著提升处理速度与效率。

weixin_42537831的博客 161

【LeetCode:690】员工的重要性(Java)

员工 1 自身的重要度是 5 ,他有两个直系下属 2 和 3 ,而且 2 和 3 的重要度均为 3。输入:employees = [[1,5,[2,3]],[2,3,[]],[3,3,[]]], id = 1。employees[i].subordinates 是第 i 名员工的直接下属的 ID 列表。你有一个保存员工信息的数据结构,它包含了员工唯一的 id ,重要度和直系下属的 id。输入:employees = [[1,2,[5]],[5,-3,[]]], id = 5。

dawn191228的博客 951

Jetson AGX Orin到手必看:DP线选错黑屏、SSD不识别?这篇避坑指南帮你一次搞定

本文详细介绍了Jetson AGX Orin开发套件的硬件避坑指南,涵盖开箱检查、DP线选择、SSD兼容性等关键问题。通过实测数据和实用技巧,帮助开发者避免黑屏、存储不识别等常见问题,提升开发效率。特别推荐符合VESA认证的DP 1.4a线缆和兼容性优秀的SSD型号,确保设备稳定运行。

weixin_33696822的博客 434

【Leetcode-算法】690.员工的重要性(C++)

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,返回这个员工和他所有下属的重要度之.

sodaxyh的博客 262

CMAC算法原理

2、K1 通过以下运算导出:若 L 的最高有效位等于 0,则 K1 是 L 的左移 1 位。3、K2 通过如下运算导出:若 K1 的最高有效位等于 0,则 K2 是 K1 的左移 1 位。采用了 AES 算法中的类似 CBC 模式的加密方式,即对前一个分组的密文与当前分组的明文进行异或操作后在加密,2、分块处理:首先将消息分成多个固定长度的块,若消息长度不是块大小的倍数,则可以使用填充来将其填充到合适的大小。1、子密钥计算,通过主密钥生成子密钥(key1,key2),子密钥用于最后一个块处理;

sky的博客 1658

【调优】OpenClaw从零开始高阶调优之skill篇

本文详细解析了OpenClaw技能系统的核心机制。首先介绍了技能的分层加载逻辑,按照优先级从高到低依次为:工作区专属技能、全局共享技能、出厂自带技能和自定义路径技能。通过流程图展示了从扫描到注册的完整加载流程,并解释了同名技能覆盖规则。随后深入剖析了SKILL.md文件结构,包含YAML元数据定义技能属性和Markdown正文说明使用方法,以公众号写作技能为例展示了具体配置。文章还提供了技能优先级切换的实用技巧,帮助用户灵活管理不同版本的技能。

海兰 239

Leetcode 690. 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的数据结构...

zhangzhetaojj的博客 624

大模型部署指南:SGLang 框架

本文介绍使用 SGLang 框架部署大模型

举世誉之而不加劝,举世非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。 1612

员工的重要性(力扣:690)

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

卜大爷的博客 2万+

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

LeetCode 690.员工的重要性

LeetCode 690.员工的重要性 给定一个保存员工信息的数据结构,它包含了员工唯一的id,重要度 和 直系下属的id。 比如,员工1是员工2的领导,员工2是员工3的领导。他们相应的重要度为15, 10, 5。那么员工1的数据结构是[1, 15, [2]],员工2的数据结构是[2, 10, [3]],员工3的数据结构是[3, 5, []]。注意虽然员工3也是员工1的一个下属,但是由于并不是直...

缇欧的咪西 346

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Java实现 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万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

【java】leetcode690.员工的重要性

最近写力扣的题,想把自己的思路记录下来: 问题描述 力扣690.员工的重要性 题目分析: 我采用的方法是使用map将员工的id和员工对应起来,当输入要查找的id时,对于找到其下属,再将其重要度相加,直至员工无下属为止。 代码实现: /* // Definition for Employee. class Employee { public int id; public int importance; public List<Integer> subordinate

wrywry0813的博客 687

【每日一题】力扣690.员工的重要性

文章目录题目解题思路代码(C++)哈希+递归递归迭代总结 题目 题目链接:力扣690.员工的重要性 给定一个保存员工信息的数据结构,它包含了员工 唯一的 id ,重要度 和 直系下属的 id 。 比如,员工 1 是员工 2 的领导,员工 2 是员工 3 的领导。他们相应的重要度为 15 , 10 , 5 。那么员工 1 的数据结构是 [1, 15, [2]] ,员工 2的 数据结构是 [2, 10, [3]] ,员工 3 的数据结构是 [3, 5, []] 。注意虽然员工 3 也是员工 1 的一个下属

倾心之作 888

C# 解决力扣(LeetCode)算法690题 员工的重要性

每个员工可以看作图中的一个节点,而员工之间的上下级关系可以看作节点之间的有向边。需要从给定的员工 ID 开始,遍历该员工以及其所有下属节点,计算这些节点的重要度总和。首先,需要将给定的员工列表转换为一个便于访问的数据结构。选择用栈来进行深度优先搜索(DFS),这是一个非递归的方法,避免了递归调用可能带来的栈溢出风险。来分配栈的空间,避免了堆上分配内存的开销,并减少了 GC(垃圾回收)的频率。在栈上分配内存,比普通数组分配更高效,但需要注意栈空间的限制。这种方法可以确保遍历到所有下属,并累加其重要度。

Kookoos的博客 493

LeetCode 第 690 号问题:员工的重要性

本文首发于公众号「五分钟学算法」,是图解 LeetCode 系列文章之一。 个人网站:https://www.cxyxiaowu.com 题目来源于 LeetCode 第 690 号问题:员工的重要性。 题目描述 给定一个保存员工信息的数据结构,它包含了员工唯一的id,重要度 和 直系下属的id。 比如,员工 1 是员工 2 的领导,员...

程序员吴师兄的博客 300

Leetcode 690. 员工的重要性 C++

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,返回这个员工

weixin_43750513的博客 235

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...

优快云的博客 285

LeetCode(690. 员工的重要性)

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 的...

我就吃一口的BLOG 371

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的一个下属,但是由于并不是直系下属,因...

Sophia_fez的博客 404

LeetCode刷题汇总

剑指offer 剑指 Offer 03 数组中重复的数字 剑指 Offer 04 二维数组中的查找 剑指 Offer 05 替换空格 剑指 Offer 06 从尾到头打印链表 剑指 Offer 07 重建二叉树 剑指 Offer 09 用两个栈实现队列 剑指 Offer 10- I 斐波那契数列 剑指 Offer 10- II 青蛙跳台阶问题 剑指 Offer 11 旋转数组的最小数字 剑指 Offer 12 矩阵中的路径 剑指 Offer 13 机器人的运动范围 剑指 Offer 14- I 剪绳子 剑指

weixin_44171872的博客 2万+
上一篇: (刷题笔记) Leetcode 897. 递增顺序查找树
下一篇: (刷题笔记) Leetcode 面试题 08.10. 颜色填充
Lucky&Happy
博客等级 码龄10年 1粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值