一、簡答題
1.列出至少6中內排序方法,並寫出相應的時間複雜度和空間複雜度以及穩定性;
2.多線程中的同步互斥方法都有哪些?
3.進程間通信的方式有哪些?哪種是效率最高的.?
Socket,pipe,共享內存,消息隊列,信號,信號量
效率最高的是:共享內存。
(360面試中問到了共享內存在系統中是如何實現的,答案應該是內存映射)
二、編程題
1.找出二叉樹中任意兩個節點的公共父節點。
可以使用"Y"型鏈表的方法來解決(一家之言)
2.刪除鏈表中重複的元素,只剩下出現一次的元素。
這個題目的關鍵是連表中只要出現兩次的元素就全部刪除,一個不剩,實現比較簡單。
3.判斷一顆二叉樹是不是平衡二叉樹
這個一般的方法會有很多重複計算的情況發生。
較簡單的方法如下:求出根節點的最大深度與最小深度,則最大深度與最小深度之差dis就是樹中任一子樹的深度差最大值,所以只要dis小於等於1,此樹就是平衡二叉樹。
三、系統設計題
這個記得不太清楚了,大概就是爲一個分佈式系統設計一個內存cache,來減少查找的延時。看過memcache源碼的童鞋應該比較理解。