1. 程式人生 > >WYHL 2018.11.12 後端工程師面試總結

WYHL 2018.11.12 後端工程師面試總結

一、WYHL公司面試總結

 

  • 過程:
    BOSS上投遞了簡歷,後來hr聯絡後簡短了解後。技術官電話面瞭解了下
     
    一個周後,hr聯絡到公司面試。

  • 時間2018.11.12 早上10:00 (因為公交遲到了幾分鐘) 以後注意出發時間

  • 第一個面試官大概是海歸吧!形象氣質風度感覺非常好,感覺比較 有深度
    問的問題也全都是演算法的
     
    總結問到的演算法:快排、歸併、堆排、以及他們的時間複雜度。
    說出時間複雜度o(1)的資料結構:雜湊表,實際複雜度-->遍歷生成hash表n+1一次定位
     
    給出一個數組arr,和一個引數b,要求設計演算法找出數組裡面唯一的兩個數相加得b。返回這兩個數。
    這個問題本身我自己比較熟悉,領釦上也刷到過,平時也看到過,當時突然就不會了,所以設計了一個n*n的演算法
    我的答案:遍歷arr,使用引數b減去這個數,然後判斷哪個值是否在arr中
    面試官讓給出一個時間複雜度為n演算法:我當時的想法是。。。。不說了,比較複雜
     
    然後面試官說如果給出的是個排好序的arr,那麼設計一個複雜度為n的演算法:
    提示是:兩個指標 i , j 一個指向索引0,一個指向-1,然後讓兩個數相加和b比較
    答案很明顯了:大就 j 往左移動,小就 i 往右移動
     
    接著還是演算法:一個二維陣列mxn,
    [
        [1, 3, 2],
        [4, 2, 5],
        [3,6, 1],
      ]
    從0,0位置走到到-1,-1,把走過的路上的數全部加起來,結果最小的一條路徑
    這個比較難:我第一反應是深度優先的遍歷方式,每個節點往左往右都計算比較大小,找到比較小的一條路徑,最後演算法只寫了一半面試官給我換了一個題。
    這個題最後問面試官答案為:兩種
     
    最後一個演算法題:一個數組,裡面有負數如:[-2, 1, 4, -1, 1, 2, -2, -1, 1, 2, -2, 1]。然後找出連續加起來最大的幾個數
    面試官給出的提示,我是一直存疑的,現在也是,等下去搞清楚。
    提示:從第一個數開始往後累加,如果小於0就放棄,並把結果儲存到一個數組中。最後比較陣列中的結果大小
    (我個人疑問就如同我給出的列子,最後兩個數,加-2大於0不捨棄,但是再加1,就比原來小了1,所以演算法需要優化下)
    最後通過提示實現的演算法:先定義一個數組存每次相加的答案,從索引0開始,小於0放棄,從新賦值為下一個陣列元素。最後比較返回陣列中最大的數

 

1.1.2 後端面試官

  • 第二個面試官是個靦腆的大男孩感覺。
    主要問題有:restframework 模組,資料庫操作

  • restful本來我知道很多很多,可惜當時被第一個演算法面試搞懵逼了,這一面我就回答了原始碼,和一個django請求到restframework的流程,裡面的一些原始碼方法等
  • 資料庫操作,面試官問了一兩個orm應用操作函式,這個嗎!太簡單了。

  • 我個人更希望問資料庫底層,原理。資料結構b+數,引擎、索引、事務、redo、undo、mvcc等。所以我不應該等著面試官問。應該自己找機會表現自己知道的
    總之個人很不滿意,會的很多東西沒能展現

後面就是說了些公司情況,環境,然後讓我等ceo開會完,見一見聊一聊。最後因為ceo比較忙沒時間就讓我走了。
整個過程比較輕鬆吧!就是自己沒發揮好比較懊惱