職位類型:職員(研發類)
面試地點:南京
招聘公司:北京小米科技有限責任公司
今年的大部分時間我一直處在沒有工作的狀態,一直晃蕩了好幾個月了,不過我有兩個很好的朋友在小米公司上班,這幾天正沒事和他們出來找個地方坐了坐。我是個嘴笨的人,一跟他們聊起要找工作就輪不到我說話了。聽他們說他們和公司里的人熟可以指點我一下,我呢,猶豫了半天,考慮再三,決定去這個神奇的創業公司走一遭,其實我也一直覺得小米比較靠譜呢。
到了小米,宏源大廈的新辦公地點。新辦公室比較空,很多空位。前臺領我到一個會議室,然后請來了一面的面試官。
和面試官先隨便聊了一下背景,讓我寫一個有序鏈表的歸并。在一面前,先被領著去參加了機試(果然還是逃不了),20分鐘一道題,類似acm,把題目提交到oj上自動判分。機試沒有太大難度,一道冒泡排序的題,十幾分鐘慢悠悠寫完,但是坑爹的時候到了,提交后提示編譯錯誤,看了錯誤日志,iostream未找到?仔細檢查了代碼發現沒有問題啊,然后問旁邊的工作人員,這個不是寫的cpp么,提交后為何顯示選擇的語言是c?面試官看了一眼:啊,只能用C。只能用C。。。那你把CPP作為選項干啥。。。后來跟工作人員協商,直接把代碼copy到記事本里,人工判分,然后出去等結果。幾分鐘后順利通過機試,準備一面。
一進面試那間屋子就嚇了我一跳,以前面試我這個職位的都是一對一,剛進屋就看見全是人,我都不知道該坐哪了,我的左邊右邊分別是來面試的同學,對面坐著我的面試官,幾個人幾乎是緊挨著。。這尼瑪太受干擾了啊,我記得我面試到一半的時候,旁邊的面試官對一個接受面試的同學說:我覺得你技術還是不到家,你可以回去了,這時候壓力山大啊,因為自己剛剛被一道題卡住了==
下面說說一面都問了些啥:
1.先讓自我介紹,老流程了,稍微介紹了下自己,以及做過的項目就過了,這個沒啥。
2.然后面試官拿起我的成績單,認真看了會,然后問:啊,你學過日語啊,來說兩句日語聽聽==面試官你沒看到我的日語剛剛及格么,硬著頭皮說了不超過五句話,實在是說不出來了。。
3.哲學家就餐問題,這個是操作系統里講到的東西,記得不太清楚,稍微給面試官說了下算法
4.問我在昆山的項目用的是什么數據庫,為什么選擇那個數據庫,然后讓我寫了幾句sql語句,這個很輕松
5.計算機網絡的七層結構,并且從底到頂排序,自己只記得六層,忘記了會話層,不過順序倒是記對了
6.寫了個排序。這個是最后一題,面試官說你前面的表現并不足以說服我讓你通過,我再給你最后一個機會,給你五分鐘,寫一個排序,注意考慮容錯問題,這下子壓力來了,速度寫完了代碼,然后給面試官看,面試官看了一眼就說,你這大括號沒有配對啊,我拿過來一看,果然少寫了一個反括號。。。然后面試官又說,你這個if下為何不寫大括號?我說這個就一句語句,不需要寫大括號啊,面試官皺了皺眉說:難道你們軟件工程沒有說編碼規范的問題么?我一下子被哽住了,說不出話來,氣氛一時很緊張。
他們面試時給我出了一份卷子大致內容是下面這些:
一面
1.一個map中存有類似如下的數據:
key value
"a" "afasfwaeqwfwa(b)eqwgewgrqgq"
"b" "frgwegqgg(c)fqf(d)dqf"
"c" "fqfgrfwgrw"
"d" "gwrgwergqwg"
現在寫一個函數,將"b"的value中的“(c)”和“(d)”分別用"c”和"d"的value替換,然后將"a"的value中的“(b)”用"b"的value替換。注:上面的map只是一個例子而己,實際情況可能更復雜。
二面
1.給2個無序數組ab
對于任意一個b在a中找出與其最接近的值
使用二分或者三分二分需要判斷多種情況
2.給出一個二叉樹包含數據按照中序遍歷的順序找出第k個元素
解:⑴中序遍歷直接找出(遞歸非遞歸)可優化
⑵使用二叉排序樹結點遍歷的順序進行編號
⑶面試官提醒可以通過結點的數據域來做可以到O(logn)
3.討論了些c 的知識
禁止一個類被繼承使用虛繼承跟友元可以完成
用c實現多態
三面
1.鏈表的各種經典問題判斷環相交結點等
2.const的各種用法
3.一個不規則多邊形判斷一個點是在多邊形內還是外
4.操作系統線程狀態圖線程進程區別虛擬內存cpu調度cache替換算法等
5.計算機網絡OSITCP/IP三次握手四次握手問的很細四次握手為什么是四次不是三次三次為什么不是兩次
這次面試大致給我的感覺挺靠譜,應該沒什么大問題,希望上面寫的內容,能給看官一些幫助。