頭條基礎面試題1-9


 

一面(43min)

  1. 自我介紹
  2. 代碼題:k個有序鏈表合併
  3. 代碼題:求數組前k小 + 快速選擇和最大堆兩種方案的平均、最壞複雜度比較
  4. C++抽象類和接口的區別 (不會)
  5. 什麼是重載、重寫
  6. 非虛函數可以被重寫嗎 (不會)
  7. 堆和棧的區別,全局、局部、動態申請的變量在哪個區
  8. B樹和B+樹區別
  9. 什麼是紅黑樹,用在什麼場景
  10. MySQL事務隔離級別
  11. 間隙鎖 (不會)
  12. 索引有哪些
  13. 什麼是聚簇索引
  14. 聚簇索引需要回表嗎?不懂回表什麼意思。換句話說只有主鍵索引是聚簇索引嗎?舉例?比如說聯合索引可能是聚簇索引嗎?什麼情況下是聚簇索引? (不會)

反問:表現怎麼樣?挺好,等一下馬上第二輪面試。

二面(39min)

  1. 自我介紹
  2. 看你獎項比較多,算法應該比較好吧。先聊聊項目吧,計網課設,基於UDP的Ping,太簡單,就說了一下大概,沒什麼可聊的
  3. 介紹一下UDP,UDP和TCP區別
  4. 爲什麼TCP是可靠的
  5. 三次握手的過程
  6. 輸入URL到瀏覽器展示的過程
  7. Java封裝繼承多態
  8. 熟悉Java的生態比如spring嗎 (不會)
  9. Java如何實現跨平臺
  10. 對Java虛擬機瞭解多少 (不會)
  11. Java和C的區別
  12. 什麼是虛擬內存
  13. 分頁分段區別
  14. 缺頁中斷
  15. 索引 (上個面試官問了,於是換一個)
  16. MySQL開啓事務的完整過程 (不會)
  17. 分庫分表 (不會)
  18. 鎖 (樂觀鎖是什麼說錯了、悲觀鎖)
  19. MySQL用的多嗎? 不多
  20. 數組鏈表區別
  21. 無論是項目還是知識還有什麼亮點想展示的嗎?網絡學的多一點。行,那我們就寫算法吧。
  22. 代碼題:LRU(10分鐘可以嗎?恐怕不行。15分鐘吧呢?不知道,儘量。那這樣吧,15分鐘能寫多少寫多少) 最後用了12分鐘

稍等,叫下第三輪面試官。過了幾分鐘,hr打來電話說三面面試官有事,最早約在了後天晚上8點,看來確實是忙。

三面(65min)

  1. 熟悉多線程嗎?不熟悉

  2. 代碼題:鏈表對摺中間到兩邊依次輸出

  3. 字典樹瞭解嗎?

  4. 代碼題:1、2、5面值的零錢無限個,湊出n有多少種方案?

    看了一眼,完全揹包,準備寫循環了。寫了幾行,感覺遞歸好寫,換遞歸寫。寫了個有bug的如下,面試官說這樣肯定不行,比較緊張,不自信,用了好長時間亂想,沒繼續改出bug,最後寫了個暴力枚舉。

    複製代碼

    1

    2

    3

    4

    5

    6

    7

    8

    int f(int n,int x)

    {

        if(n==0)return 1;

        if(n<0)return 0;

        if(x==1)return f(n-1,1);

        if(x==2)return f(n-1,2)+f(n-2,2);

        if(x==5)return f(n-1,5)+f(n-2,5)+f(n-5,5);

    }

    結束後,自己一寫如下,明明是對的啊(邏輯思路對,先不寫記憶化搜索),纔想到面試時寫了bug。後序聽錄音,是跟面試官互動太多,被面試官繞暈了,本來這樣寫邏輯是正確的,結果寫的過程中面試官問x是什麼意思,我說是最大用到幾,x是5代表可以用125,x爲2代表可以用12,x爲1代表可以用1,面試官說5的情況包含了1的情況,所以肯定有重複呀,我一想確實是這個理,就沒相信自己的做法,之後就越走越偏,邁向涼涼了。

    複製代碼

    1

    2

    3

    4

    5

    6

    7

    8

    int f(int n,int x)

    {

        if(n==0)return 1;

        if(n<0)return 0;

        if(x==1)return f(n-1,1);

        if(x==2)return f(n-1,1)+f(n-2,2);

        if(x==5)return f(n-1,1)+f(n-2,2)+f(n-5,5);

    }

    這道題從前到後花了33min,沒搞出來,最後寫了個暴力,完蛋。

  5. 實習可以多長時間?下學期不上課了

  6. 後端開發、服務器設計,比如怎麼設計分佈式id生成器?沒接觸過

  7. 熟悉C++什麼?STL。哪些?set,map,vector。大概底層實現?

  8. C++11瞭解嗎?不瞭解

  9. linux瞭解嗎?不瞭解

  10. 虛擬存儲怎麼實現?32位操作系統的最大虛擬內存空間?

  11. 進程間通信方式?

  12. SQL語句。表裏有班級號、學生、成績,統計班級平均成績?

  13. 左連接右連接區別

  14. 反問?表現怎麼樣,哪些方面需要提高?

    如果嚴格按照你有acm經歷,那你那個算法題就不合格呀。我:有點意外 面試官:翻車了是吧

    然後問你多線程基礎知識,不瞭解,基礎知識不夠深入吧

    我其實基本沒怎麼問一些基礎相關的,像linux、操作系統基礎相關的,進程的一些模型

    優勢是代碼能力還可以

  15. 後面會考慮讀研嗎?不讀。考慮在哪工作?實習深圳畢業無所謂

over


沒想到啊,以爲最大問題是基礎不佔優勢,好歹是個icpc銀,結果卻栽在了一道入門dp題上,真是太搞笑了。大概率是涼了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章