1. 程式人生 > >騰訊2面

騰訊2面

騰訊二面 20181017

  • 自我介紹(無)
  • 實習專案介紹
    • 專案背景
    • 專案完成周期
    • 自己負責的模組
  • 資料結構和演算法
    • 演算法手撕題1(對單鏈表反轉)
      • 給定一個單鏈表頭結點,對其進行反轉)
        • 首先給出的遞迴解法(面試官貌似不認可) 空間複雜度O(n)
        • 然後給出基於迴圈結構的解法 空間複雜度O(1)
      • 最長公共子序列問題
        • 給定兩個字串,然後求兩個字串的最長公共子序列(給出思路,不要求寫程式碼)
          • 直接通過二維表,列地推關係式。
  • 高併發知識
    • 介紹高併發
      • 多執行緒
      • 執行緒池
        • 巨集觀(設計執行緒池的思想層面:引數,介面,策略)
        • 微觀(程式語言層面)
    • 死鎖
      • 如何避免死鎖?
        • 導致死鎖的必要條件
        • 避免死鎖的方法
          • 指定獲取鎖和釋放鎖的順序
          • 破壞導致死鎖的必要條件,使其不被滿足
  • Http協議
    • what:(Hyper Text Transfer Protocol)超文字傳輸協議,包含那些東西?
    • how:底層實現
    • http2.0的特性
      • 伺服器推送資料
      • 首部壓縮,減小頻寬
      • 更多加密方式的支援
      • 文字轉為二進位制資料傳輸
  • 記憶體洩漏
    • what
      • 解釋什麼是記憶體洩漏?
      • 附帶對比記憶體洩漏和記憶體溢位
    • why
      • 分析為什麼產生了記憶體洩漏?
    • how
      • 怎麼去檢測程式是否存在記憶體洩漏?
  • 智力題(tencent兩輪面試都出了兩三道智力題,可怕)
    • 1.給定一串數字,其個數為偶數個,但是數字之和為奇數,現在兩人分別交替從兩端拿數字,最後兩人拿到的數字之和最大者勝出,問是否存在一種必勝的策略,如果存在請給出,不存在說明理由?
    • 2.一個桶中有100個球,兩個人交替拿球,每個人每次可以選擇在桶中拿出1個或者2個或者3個或者4個球,問是否存在一種必勝的策略,如果存在請給出,不存在說明理由?
      • 解決方案:首先從100個數中,先手拿出奇數個數n1=(1 or 3),然後剩下的數也就變成了100-n1。然後每次兩人都拿的數之和滿足偶數,最後剩下的數肯定是基數,先手贏(可惜該方案是錯誤的)
      • 正確方案:第二個人贏,策略如下:假設每次先手拿n1個數,然後後手拿5-n1個數,最後肯定是第二個人最後拿數,所以第二個人贏。perfect
  • finally
    • 1.最後,最後,最後。由於本人擅長的是java語言,面試官說他不太懂java。然後全稱有點不太好面,所以涉及java的知識問的很少很少。
    • 2.從整個參加秋招以來,遇到過幾次本人java,面試官c++的情況。
      • 華為優招(直接尬聊專案,聊完問哪個語言用的多,答java,直接讓我回去)
      • shopee一面(也是全程尬聊,聊完面試官一臉不爽,我就懟了他,把華為的氣一次性爆發到了面試官頭上)
      • 騰訊二面(打破了c++的魔咒,從一出來就感覺生無可戀,到最後回來的路上,重新整理了幾次公眾號狀態,大概過了十多分鐘的樣子,在公交站等車的時候,看到狀態為hr環節,整個人高興的跳起來了,太開心了)
      • 晚上8點收了明天的hr面試,開心。希望hr面不要在懟技術,尤其是別遇到擅長c++的hr(保佑),保佑自己明天順利過。