头条1,2面 攒人品
一面:
1.代码题
0--9,10个数字组成环,从0出发,每次可前或后1步,输入n,求回到0的可行方法数.
eg:输入2 返回2, 0-1-0,0-9-0.
2.问答
1.进程与线程的区别.
2.i++,++i谁快,为什么?
3.进程1(含2线程)与进程2(含1线程)的占用cpu时间片比.
4.char*s="abc",s所在区,可否更改s[1] = 'a'?
3.记不清了
二面:
1.代码题
class Node { int i; Node*next; } class Set { Node*head; Set():head(NULL){}; bool insert(int i); Set union(const Set&other)const; } 保证Set内数据有序唯一,实现insert和union;
2. 问答
for(inti=0;i<2;i++) { fork(); write(1,"-",1);//1 printf("-");//2 }//1,2分别输出什么,为什么?
3.
每行输入logintime,logouttime。变量取值为1天的秒数。1--3600*24。
10亿行。 logouttime - logintime约等于3600。
求每秒的在线人数。
eg:
1 5
2 4
2 5
3 6
num[1] = 1,num[2]=3,num[3]=4,num[4]=3,num[6]=0;
给出算法,以及时间复杂度。