一面&二面:html
1. 链表排序;算法
2. 给定n个数,有两个数字出现了1次,其余出现了2次,找出这两个数字;服务器
3. 把二叉树按列打印出来;函数
4. ac自动机问题;网站
5. 最大子序列和问题;ui
6. virtual关键字;spa
三面:.net
1. 项目经验;设计
2. 根据项目经验进行系统设计;指针
个人是:设计一个服务器监控通知系统,使一个服务器能够监控多台服务器,当服务出现问题的时,能够及时通知工程师,要作到4点要求:
A 可扩展性,能够方便的增长或删除须要监控的服务器;
B 能够监控服务器的死活;
C 能够监控不一样的服务异常;
D 能够对不一样的服务进行不一样等级的警报。
其余网站的资源:
http://www.cnblogs.com/buptLizer/archive/2011/09/22/2185133.html
最基本:虚函数,quick sort,三次握手 ok,进程通讯
1.虚函数 做用:实现动态联编,即在程序执行期间动态的选择合适的成员函数。 封装、继承和多态。
2.快排 void quickSort(int l,int r) { if(lb[j]) {++j;} else {++i;} } }
3.//最大子矩阵和 m[N][N] int getMaxSub(int *a,int len) { int curMax; curMax=a[0]; for(i=0;i>n>>m; for(int i=0;iresult) result=tmp; } } }
4.//链表快排
5.//7进制转化为14进制 //思路:将7进制数字转化成10进制,而后再转换成14进制 void NumtoNum(char s[],int len,int from,int to) { ///////////////////////////////////////////// //无符号整形,当为0时,再--的话直接变成最大值 ///////////////////////////////////////////// int sum=0,k=1,i=len-1,j=0; cout<= 0;i--) { cout<=10) re[i++]=(char)('A'+j-10); else re[i++]=(char)(j+'0'); } for(j=0;j<i/2;j++) { char ch=re[j]; re[j]=re[i-1-j]; re[i-1-j]=ch; } cout<<re<<endl; }
6.分配一个大小为3的string和分配一个大小为1000的string,时间是同样的吗? 我把这个题放到 了算法群里,让大牛们讨论,结论是相同的,由于STL 给string预分配的大小为1024个字节,因此二者时间同样,可是若是超过这个范围, 我我的感受应该考虑内存管理方面的东西,用首次匹配,最佳匹配或者最差匹配等等,不一样的分配方式应该是不同的。还有一个大牛说:“ 若是实际底层申请的是同样的内存,时间差很少 不然不同 ”。
7.为何要使用滑动窗口协议 滑动窗口协议是TCP中流量控制的一种方法,该协议容许发送端能够在中止并等待确认前发送多个分组,并且能够经过接受端控制发送端的发送。只有收到接受端的确认以后, 发送窗口才有可能向前滑动。是TCP协议软件利用滑动窗口有效解决传输效率和流量控制问题。
8. 设计一个C++垃圾回收机制 有析构函数、智能指针、引用计数去管理资源的释放。 方法1:使用引用计数和智能指针,给每一块分配的内存提供引用计数,而后经过智能指针(smart pointer)自动完成引用计数的加减, 若是引用技术减小到零,就表明没有人使用该内存了,这块内存就能够回收了。 具体能够在网上看下:
http://blog.csdn.net/yeahhook/article/details/6796242
http://familyandjob.blog.51cto.com/523471/110494
最后一个问题能够采用钩子函数实现,具体见:
http://www.cnblogs.com/buptLizer/archive/2011/09/22/2185002.html