LeetCode 582. 杀死进程(图的遍历)

文章目录

    • 1. 题目
    • 2. 解题
      • 2.1 DFS
      • 2.2 BFS

1. 题目

给 n 个进程,每个进程都有一个独一无二的 PID (进程编号)和它的 PPID (父进程编号)。

每一个进程只有一个父进程,但是每个进程可能会有一个或者多个孩子进程。
它们形成的关系就像一个树状结构。
只有一个进程的 PPID 是 0 ,意味着这个进程没有父进程。
所有的 PID 都会是唯一的正整数。

我们用两个序列来表示这些进程,第一个序列包含所有进程的 PID ,第二个序列包含所有进程对应的 PPID。

现在给定这两个序列和一个 PID 表示你要杀死的进程,函数返回一个 PID 序列,表示因为杀这个进程而导致的所有被杀掉的进程的编号。

当一个进程被杀掉的时候,它所有的孩子进程和后代进程都要被杀掉。

你可以以任意顺序排列返回的 PID 序列。

示例 1:
输入: 
pid =  [1, 3, 10, 5]
ppid = [3, 0, 5, 3]
kill = 5
输出: [5,10]
解释: 3/   \1     5/10
杀掉进程 5 ,同时它的后代进程 10 也被杀掉。注意:
被杀掉的进程编号一定在 PID 序列中。
n >= 1.

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/kill-process
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 建图,遍历

2.1 DFS

class Solution {unordered_map<int, vector<int>> m;vector<int> ans;
public:vector<int> killProcess(vector<int>& pid, vector<int>& ppid, int kill) {int i, root = -1;for(i = 0; i < pid.size(); ++i){if(ppid[i])m[ppid[i]].push_back(pid[i]);}dfs(kill);return ans;}void dfs(int root){ans.push_back(root);for(int i = 0; i < m[root].size(); ++i)dfs(m[root][i]);}
};

276 ms 67.7 MB

2.2 BFS

class Solution {unordered_map<int, vector<int>> m;vector<int> ans;
public:vector<int> killProcess(vector<int>& pid, vector<int>& ppid, int kill) {int i, cur;for(i = 0; i < pid.size(); ++i){if(ppid[i])m[ppid[i]].push_back(pid[i]);}queue<int> q;q.push(kill);while(!q.empty()){cur = q.front();ans.push_back(cur);q.pop();for(int i = 0; i < m[cur].size(); ++i)q.push(m[cur][i]);}return ans;}
};

264 ms 65.3 MB


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
Michael阿明

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

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

相关文章

LeetCode 737. 句子相似性 II(并查集)

文章目录1. 题目2. 解题1. 题目 给定两个句子 words1, words2 &#xff08;每个用字符串数组表示&#xff09;&#xff0c;和一个相似单词对的列表 pairs &#xff0c;判断是否两个句子是相似的。 例如&#xff0c;当相似单词对是 pairs [["great", "fine&qu…

计算机硬盘怎么设置ntfs,每次设置系统后,能否更改计算机硬盘分区的fat32和ntfs格式?...

f3622635硬盘的格式转换一个&#xff0c;FAT32到NTFS在“运行”中输入“ CMD”以打开“命令提示符”窗口&#xff0c;输入: “ CONVERT F: / FS: NTFS”&#xff0c;其中“ F: ”是分区驱动器号(带冒号)&#xff0c;“ / FS: NTFS“是将指定的分区转换为NTFS格式.我认为它会很快…

LeetCode 708. 循环有序列表的插入

文章目录1. 题目2. 解题1. 题目 给定循环升序列表中的一个点&#xff0c;写一个函数向这个列表中插入一个新元素&#xff0c;使这个列表仍然是循环升序的。 给定的可以是这个列表中任意一个顶点的指针&#xff0c;并不一定是这个列表中最小元素的指针。 如果有多个满足条件的…

VMWare serve 2.0 进入 RHEL Linux rescue模式

可能由于我的鼠标点击速度比较慢所以一直没机会在 VMware Serve启动的时候按F2进入bios 模式&#xff0c;哈哈。 1.在次用另外一种方式&#xff1a; 2.进入bios 系统后&#xff0c;选择“boot”&#xff0c;再选"CD/ROM"&#xff0c;上移到第一位。 3.在boot:后面输入…

LeetCode 755. 倒水(模拟)

文章目录1. 题目2. 解题1. 题目 给出一个地形高度图&#xff0c; heights[i] 表示该索引处的高度。 每个索引的宽度为 1。在 V 个单位的水落在索引 K 处以后&#xff0c;每个索引位置有多少水&#xff1f; 水最先会在索引 K 处下降并且落在该索引位置的最高地形或水面之上。然…

LeetCode 444. 序列重建(拓扑排序)

文章目录1. 题目2. 解题1. 题目 验证原始的序列 org 是否可以从序列集 seqs 中唯一地重建。 序列 org 是 1 到 n 整数的排列&#xff0c;其中 1 ≤ n ≤ 104。 重建是指在序列集 seqs 中构建最短的公共超序列。&#xff08;即使得所有 seqs 中的序列都是该最短序列的子序列&am…

华硕主板如何用u盘启动计算机,华硕主板怎么设置u盘启动都有哪些方法

随着互联网的不断发展&#xff0c;现在使用电脑的机会越来越多了。但是机器难免出故障&#xff0c;或者对于新的电脑需要设置启动。那么华硕主板怎么设置u盘启动。下面由一键工作室介绍一下。华硕主板怎么设置u盘启动华硕主板怎么设置u盘启动 华硕主板设置u盘启动方法1、首先&a…

LeetCode 353. 贪吃蛇(deque+set)

文章目录1. 题目2. 解题1. 题目 请你设计一个 贪吃蛇游戏&#xff0c;该游戏将会在一个 屏幕尺寸 宽度 x 高度 的屏幕上运行。 起初时&#xff0c;蛇在左上角的 (0, 0) 位置&#xff0c;身体长度为 1 个单位。 你将会被给出一个 (行, 列) 形式的食物位置序列。当蛇吃到食物…

计算机简单故障时的排除方法,电脑简单故障排除解决办法大全

电脑简单故障排除解决办法大全一、电脑罢 工了?听报警声就可以处理故障!在使用电脑的时候&#xff0c;我们会经常遇到开机时电脑黑屏没有反应的情况&#xff0c;普通的电脑用户而对这样的故障实在是无从下手&#xff0c;但是一般电脑会有一个内部自检的功能&#xff0c;如果检…

LeetCode MySQL 1543. Fix Product Name Format(trim去空格+upper/lower大小写)

文章目录1. 题目2. 解题1. 题目 Table: Sales ----------------------- | Column Name | Type | ----------------------- | sale_id | int | | product_name | varchar | | sale_date | date | ----------------------- sale_id is the primary key for …

云计算之路-阿里云上:拔云见日的那一刻,热泪盈眶

当用路过秋天的压力测试工具重现问题的那一刻&#xff0c;热泪盈眶&#xff01;这段时间所承受的一切一涌而出。。。 下面这张图是首次压力测试重现问题时的Windows性能监视器截图&#xff0c;我们对这样的图太熟悉了&#xff0c;当它一出现&#xff0c;就知道问题重现了。红色…

科润酒吧点单系统服务器配置,那些牛逼的酒吧都用什么管理系统?

原标题&#xff1a;那些牛逼的酒吧都用什么管理系统&#xff1f;关于酒吧你是熟悉还是陌生&#xff1f;对酒吧的管理系统&#xff1f;你接触的都有哪些&#xff1f;今天分享一个超大型酒吧的系统解决方案。宁波最大酒吧S86正式营业&#xff0c;视易娱加管理系统助力场所运营&am…

LeetCode 第 32 场双周赛(983/2957,前33.2%)

文章目录1. 比赛结果2. 题目1. LeetCode 5468. 第 k 个缺失的正整数 easy2. LeetCode 5469. K 次操作转变字符串 medium3. LeetCode 5470. 平衡括号字符串的最少插入次数 medium4. LeetCode 5485. 找出最长的超赞子字符串 hard1. 比赛结果 两题选手报道&#xff0c;继续加油&a…

python中的类属性和实例属性

类属性和实例属性&#xff0c;一般我们接触到的就是实例属性&#xff08;对象属性&#xff09;&#xff0c;顾名思义&#xff0c; # 实例属性是对象持有的&#xff0c;不是共享的属性 # 实例属性只有对象能够访问 类属性就是类对象所拥有的属性&#xff0c;它被所有类对象的实…

图片网站用什么服务器好,网站图片与框架放在不同服务器有哪些优缺点

如今很多企业线上发展迅速&#xff0c;对网站的要求也越来越高&#xff0c;因此出现分离式网站架构。怎样理解分离式网站架构呢&#xff1f;理解最简单的一种&#xff0c;即将图片与网站架构分开存放。的确&#xff0c;现在很多企业都采取这样的操作模式&#xff0c;也有可能成…

LeetCode 第 201 场周赛(304/5614,前5.42%)

文章目录1. 比赛结果2. 题目1. LeetCode 5483. 整理字符串 easy2. LeetCode 5484. 找出第 N 个二进制字符串中的第 K 位 medium3. LeetCode 5471. 和为目标值的最大数目不重叠非空子数组数目 medium4. LeetCode 5486. 切棍子的最小成本 hard1. 比赛结果 做出来3题&#xff0c;…

出现一次的数字

看了何海涛的日志 他分别解决了一个 两个 三个 出现一次的数字的思路 给人的感觉有一生二 二生三 三生万物的思维 现把自己的感悟写下来 一个 思路很简单 所有数字异或的结果 两个 关键是区别 所有的数字异或的结果同时也是两个出现一次数字异或的结果 记为XORresult<>0 …

LeetCode 723. 粉碎糖果(模拟)

文章目录1. 题目2. 解题1. 题目 这个问题是实现一个简单的消除算法。 给定一个二维整数数组 board 代表糖果所在的方格&#xff0c;不同的正整数 board[i][j] 代表不同种类的糖果&#xff0c;如果 board[i][j] 0 代表 (i, j) 这个位置是空的。 给定的方格是玩家移动后的游戏…

css3案例分析,CSS3动画/动画库以及案例分析(上)

在这html5遍天下的年代&#xff0c;越来越多的网页也用到了css3的动画效果&#xff0c;这让原本我们静态的页面有了更多的活力。最近也一直在做这方面的页面&#xff0c;有些小小的心得&#xff0c;和诸位分享下。CSS3的动画绝对是很赞的&#xff0c;不仅支持PC还支持移动端&am…

LeetCode 418. 屏幕可显示句子的数量(DP)*

文章目录1. 题目2. 解题1. 题目 给你一个 rows x cols 的屏幕和一个用 非空 的单词列表组成的句子&#xff0c;请你计算出给定句子可以在屏幕上完整显示的次数。 注意&#xff1a; 一个单词不能拆分成两行。 单词在句子中的顺序必须保持不变。 在一行中 的两个连续单词必须用…