搜狗面试
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 }
 
 
                    
                     
                    
                 
                    
                
 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号