搜狗面试

1.java实现链表反转

2.c++

假设 Linux 中有两个数组 pid 和 ppid,他们等长,并且相同的位置,分别表示进程号和其对应的父进程号。现在想要 kill 某一个进程,请设计程序,打印输出需要 kill 掉的所有进程号。

 
pid   9,  0, 10,  67,  23,  45, 100
ppid  0,  0,  0,  23,  10,  10, 45
 
kill 10 

 1 void Kill(vector<int> pid,vector<int> ppid,int num){
 2 
 3 int len=pid.size();
 4 queue<int> que(110,-1);
 5 vector<int> ans(len*2+1,-1);
 6 vector<int> sto(110,-1);
 7 for(int i=0;i<len;i++){
 8 sto[pid[i]]=ppid[i];
 9 }
10 for(int i=0;i<110;i++){
11 if(sto[i]==num){
12 que.push(i);
13 ans.push_back(i);
14 }
15 }
16 while(!que.empty()){
17 int temp=que.front();
18 que.pop();
19 for(int i=0;i<110;i++){
20 if(sto[i]==temp){
21 que.push(i);
22 ans.push_back(i);
23 }
24 }
25 }
26 return ans;
27 
28 }
 

猜你喜欢

转载自www.cnblogs.com/yuanninesuns/p/9818589.html