當前位置:文思屋>學習教育>考研>

交大學子的技術類筆試面試經驗

文思屋 人氣:3.2W

經過將近2個月的折騰,job hunter的日子也已經over了。無數次上這個版,今天冒著被取
消offer的危險給大家洩點題,來點面經,給學第學妹們多點參考資料。希望大牛們不要嘲
笑我,主要是面向學弟學妹們或者將來要找工作的同學的參考資料,針對CS||SE方向的同
學:)

交大學子的技術類筆試面試經驗


首先,談談筆試||電面。筆試或者電面一般是公司挑人的第一關,而在這一輪,不同公司
會有不同的風格,但是大體上,掌握好這些東西肯定是錯不了。

1. english , 外企筆試或者電面基本都是用英語的,所以英語至少要看得動,能跟他們聊
。其實周圍蠻多同學對自己英語沒有自信,其實我認為只要過了6級就這一關就肯定夠用了
。尤其是電面的時候,技術上可能是用中文說,部分公司(morgan...)除外,但是總歸得準
備一份流利的英語自我介紹對不對?

 

2. 基本學科 。像google, baidu這樣的公司只考演算法,其實基本學科的東西相對就比較弱
了。但是其他公司基本上就是你這幾年學到的東西,首先當然是coding能力,要不寫 cod
e,要不看code,  在筆試的時候只需寫出思路就行了,不必每個變數,每個迴圈就斤斤計較
;但是在微軟電面的時候會有一個live meeting的東西共享一個記事本,讓你在上面寫co
de, 這時就最好注意一下你的coding style, 包括方法變數命名,先寫test case, 考慮周
不周到,而且微軟那邊特別愛考字串轉int, int轉字串;比如後者,你就要先考慮in
t有沒有可能是負數;是不是可以擴充套件把進位制用變數或者引數描述;在求int的位數(字串
長度)的時候怎樣求,用迴圈除以進位制數還是直接用log的方法等等。。。基本coding能力
還是很重要地~

 

其次就是各個科目了,資料結構:很多人說這個很重要,其實這個沒有想象中的需要那麼
多的精力,只需要知道概念就是了,連結串列,二元樹,圖,基本排序演算法這些概念要知道;
比如二元樹中序+前序(後序)能決定其排列等基本性質;

然後類似於一些比較經典的演算法題目

如何判斷兩個連結串列是否有交叉點,連結串列資訊不知道,希望是O(n)的演算法,而且O(1)的空間
;

同樣不知道連結串列資訊,如果判斷一個連結串列是否有環?

如何在大數組裡去重?

如何在兩個二元樹中求得最大子樹(高度最高)?

 

其實演算法這個東西我也不知道怎樣準備,知道一些基本概念(遞迴,回溯,Hash, 動態規劃
,分支之類的)然後平時可以多上ACM的網站練練手,做多了也就有感覺了(其實我自己都沒
怎麼做過這些題目)

 

網路:總歸得知道TCP/IP的7層協議,沒層是做什麼的,有哪些代表協議,其中最重要的就
是網路層和傳輸層,IP地址,子網掩碼的作用及原理, ICMP(ping), nslookup, netstat
之類的命令也應該有所瞭解;TCP/UDP有什麼區別; 資料庫: 總歸得知道基本sql語句怎麼
寫,包括一些基本函式(max, sum),和一些in, some, all的關鍵字,其次事務的基本性質
(ACID) 隔離級別正規化的概念也要知道;作業系統,這個學的時候肯定要好好學,不過貌似
面試的時候不會考得很深,比如程序執行緒的區別啦,程序排程演算法,死鎖形成4大要素以及
分別對應的解決方案,比較容易考的是銀行家演算法,以及虛存頁面置換演算法,比較容易考
的是LRU,最好的工作集反而考得不多;其他科目就可以忽略啦 哈哈但是不是讓大家不學哈
:)

 

筆試的時候一般會有智力題目,像之前在筆試微軟的時候居然有一道"愛因斯坦的超級問題
",這個沒什麼好準備的,能做就做,不能做準備也沒用,具有比較大的偶然性,所以可以
不管這一塊;

 

再來說說面試:

對於我來說,筆試或者電面過了,面試我就不怎麼害怕了。因為面試有個很大的優勢是你
是跟他當面交流的.,可以有肢體語言,尤其是眼神上的交流,尤其是技術面,如果你搞不
定的時候可以從眼神裡獲得提示,反正面試的時候就淫笑著盯著她(他)眼睛看,保你沒事
,呵呵;如果是聊天面,這下你就要掌握好這個度了,要在前幾句話看出這個人nice不ni
ce, 像不像要卡人的人,如果是的話,就要注意了,不要亂說話,要打七寸;如果不是,
就不要擔心拉,隨便吹,吹你有多厲害,當然要保持謙虛,我想大家應該都能掌握這個度
的;

所以我覺得在面試的時候關鍵還是要淫笑+暗送秋波

 

接下來說說我遇到的或者同學遇到的一些筆試面試題目吧,僅供大家參考:

1. 兩顆二元樹求最大相同子樹(高度最高);

2. 把一般的加減法改成波蘭字尾式;

3. 兩個很大的檔案,每個檔案有數千萬行,沒行都是一個字串,求兩個檔案中字串相
同的行,也就是求交集;

4. 有10個球,球和球之間沒有區別,分成 N堆,隨便你,做這麼一個操作,從每堆裡面拿
出一個,放到最後形成一個新的堆,比如一開始是分成兩堆,每堆5個, 序列是(5, 5),
一次操作之後序列成為(4, 4, 2), 再一次之後變成(3, 3, 1, 3), 求證經過有限次操作之
後,序列一定會變成(1, 2, 3, 4),不能用類似於列舉這樣的算反,要數學邏輯上的推斷
(至今仍未搞定)

5. 掃描病毒優化。假設有一個病毒庫,很大,有成千上萬個,為了簡單,假設全部是一定
序列的字串;在掃描病毒的時候,最簡單的辦法就是把一個檔案用這成千上萬個病毒庫
都匹配一次,如果全部都沒匹配上,則證明該檔案是安全的;但是磁碟上的檔案也不是個
小數目,求優化;

6. 咱們在google或者baidu的時候都會有大量的重複網頁,怎樣判斷+去重;

7. 一個遊戲,我把你眼睛蒙上,然後在一張旋轉的桌子上面方有4個硬幣,放在正方形的
4個角上,你讓我做操作翻硬幣,一旦4個硬幣的狀態(正面朝上||反面朝上)一致,則告訴
你你贏了,求能讓你必贏的操作序列;

8. 在一個只有加法(+)和比較(==)的機器上,實現+, -, *, /四種功能;

9. 設計一個搜尋時用的cache;

10. 一次遍歷找出一個連結串列的最大的N項(coding);

11. Josephus 問題(燙手的土豆的遊戲);

12. 一個國家只喜歡男孩,不喜歡女孩,沒對夫婦最後都以生孩子都是一直生到男孩為止
,求這個國家的男女比例;

13.  甲向乙借了元錢,乙催帳,甲為了還乙錢,向丙借的錢,但是丙沒有現金
,只要給了甲一張支票,甲到銀行換錢的時候呢,銀行小姐失誤了,給了他元,這樣
呢,甲不但還了兩個人的錢還剩了1元錢,求 A, B, C, D;

14. 如果我vpn一直連線不上,請問你怎麼解決這個問題;

15. 給你兩部一模一樣的手機,有100層樓,你要給我最高從多少層樓仍下這部手機的時候
手機不會壞掉,求最少的仍的次數;

16. 還有一些開放性的題目,上海市一個有多少個網球,多少個下水道蓋之類的;

好了,大致就想到這些,祝各位好運哦:)