1. 程式人生 > >搜狗面試

搜狗面試

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 }