一面&二面: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