記一次面試經歷

wanna發表於2020-09-04

面試概況

  1. 崗位:golang開發
  2. 公司:*** (公司名字就匿了哈,避免看了題再去面試對其他小夥伴不公平)
  3. 途經:朋友內推
  4. 方向:IoT(物聯網)/區塊鏈
  5. 結果::sob: :sob:
  6. 雖然失敗了但是還是有很多值得參考的地方,我還是挺看好這個公司發展的方向的,希望想到這個(類)公司面試的小夥伴有幫助

面試題目

共10題,答題時間30min,其實這些題都很基礎,好好學過go的都會吧,答案我放最後

不定項選擇題

  1. 對於func add(args ...int) int {}呼叫方式正確的選項有()
    A. add(1, 2)
    B. add(1, 3, 7)
    C. add([]int{1, 2})
    D. add([]int{1, 3, 7}…)
  2. 變數的初始化,下面正確的使用方式是()
    A. var i int = 10
    B. var i = 10
    C. i := 10
    D. i = 10
  3. golang中的引用型別包括()
    A. string
    B. map
    C. channel
    D. interface
  4. 關於整型切片的初始化,下面正確的是()
    A. s := make([]int)
    B. s := make([]int, 0)
    C. s := make([]int, 5, 10)
    D. s := []int{1, 2, 3, 4, 5}
  5. 關於channel,下面語法正確的是()
    A. var ch chan int
    B. ch := make(chan int)
    C. <- ch
    D. ch <-
  6. 關於無緩衝和有緩衝的channel,下面說法正確的是()
    A. 無緩衝的channel是預設的緩衝為1的channel
    B. 無緩衝的channel和有緩衝的channel都是同步的
    C. 無緩衝的channel和有緩衝的channel都是非同步的
    D. 無緩衝的channel是同步的,而有緩衝的channel是非同步的

答案
以下答案僅供參考,筆記主程沒給我答案,上面部分問題是我在網上搜尋golang面試題後才想起來的,只要好好準備,這些題都簡單,全是基礎

  1. ABD
  2. ABC
  3. BCD(我當時直接反著答了個A成功排除所有正確答案,然後給面試官解釋了下我的想法要麼A要麼BCD,面試官還是覺得很ok的)
  4. BCD
  5. ABCD(我不知道D是不是對的,我答了D)
  6. D

解答題

講道理我tmd做到原題了,所以得出結論,多刷leetcode沒毛病
給我出的都是leetcode裡面的簡單難度的演算法題,以至於我都覺得不算演算法題了~
除了演算法還考了點基礎概念

  1. 簡要面試下變數逃逸
  2. 給定一個整數陣列 nums 和一個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。leetcode連結
  3. 給定兩個陣列,編寫一個函式來計算它們的交集、以及差集(交集很簡單,重點在差集上)leetcode上只講了交集沒講差集
    如輸入nums1 = [4,9,5], nums2 = [7,5,10,8,4]
    交集返回[4,5]
    差集返回[9],[7,10,8]

變數逃逸這題我懵了,我沒看過這個的定義,所以就亂寫了一堆

不知次題是否想考golang的垃圾回收機制,golang的垃圾回收機制使用三色
這兩道演算法題都是原題我就不一一解答了

最後兩題由於時間問題,我直接答的最簡單的解法,時間和空間都得分不高,後面面試時,面試官問了我更優解,給他解釋了更好的方案
第二題的差集用map的delete方法減少迴圈,這個我們想到,面試官給我講了下用delete的方式獲得才是相對更優的解答,可以把你們的答案留在評論區

做完題我感覺我有了,我在考慮要15K?16K?18K?了

主程面試

由於是內推(在此感謝@劉水水同學的推薦),直接跳過了前面的步驟,做完題面主程了~(好像也沒跳過啥哈哈哈,反正給了機會嘛)

面試題講解

主程先給我講了下第三題,我選反了…給說了下引用型別的概念,我還在第三題下面備註了下

抱歉,對於應用型別的概念我不熟悉,我猜測答案要麼是A要麼是BCD即反過來

結果我還是選反了~哈哈哈不過面試官還是比較滿意的
演算法題1 我用的是兩次for迴圈遍歷,在面試官說之前我就先解釋了下,一共半個小時,外加手寫程式碼,沒辦法去考慮更優解,然後就講了用map來解的方案(完美混過去)

第二道演算法題,交集我的做法是把長slice放map裡面,然後迴圈短的slice判定map裡面是否含有,若有,則把對應項append到結果集中
差集同樣的用map加上slice的迴圈找出結果,主程給我說,此處更好的解決方案是使用map自帶的delete方法,把交集刪除後,剩下的就是差集了。。。。emmmm好像的確更好哈,可惜我沒想到
ok面試題就到這裡了,接下來是考了些go的基礎

go基礎的考核

考了哪些只是點呢~~我也只能儘量回憶下,不確定能回憶完
待續… …

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章