Fork me on GitHub

Kill Process

Description

https://leetcode.com/problems/kill-process/

Solution

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
class Solution {
public:
vector<int> killProcess(vector<int>& pid, vector<int>& ppid, int kill) {
unordered_map<int, vector<int>> ppidMap;

for (int index = 0; index < pid.size(); ++index) {
ppidMap[ppid[index]].push_back(pid[index]);
}

queue<int> que;
que.push(kill);
vector<int> ret;
ret.push_back(kill);
while (!que.empty()) {
int t = que.front();
que.pop();
if (ppidMap.count(t) == 0) continue;
vector<int>& vec = ppidMap[t];
for (auto& item : vec) {
que.push(item);
ret.push_back(item);
}
}

return ret;
}
};