職位類型:技術類
面試地點:北京
招聘公司:北京小米科技有限責任公司
技術崗位面試也少不了技術題目,其他面試內容我就不說了,只把印象比較深的幾道技術面題目跟大家分享一下吧~
1.一個二維數組
3 8 10 13
15 17 22 25
23 26 29 31
27 30 33 34
盡可能快的找到一個數m,比如m=27
我的回答是根據數組特點設計查找算法,主要是減少元素的遍歷。
2.一個手機鍵盤主要用到1234567890*這11個按鍵,要求實現輸入任意數字,返回它的中文表述,*號作為退位鍵,比如輸入134,應返回“一百三十四”,輸入1500110,應返回“一百五十萬零一百一十”,要求中文表述結構應盡量合理,同時動態顯示變化,比如剛才的1500110,在輸入*,即1500110*,應返回“十五萬零十一。
3.N層的臺階有兩種走法,一次一步或兩步,請問一共有多少中走法,遞歸和非遞歸兩種方法都需要。
4.找出兩個單向鏈表的相同元素(無序)。
5.現有一張很大的域名列表,可以包含幾百萬條記錄,其中包含重復項,有以下幾個問題:
a)設計結構
b)實現去重。
c)排序
d)插入某一項(可能和表中數據重復)
e)內存不夠大,如何保證訪問效率
f)如何設計cache的策略
g)如何處理臟數據,例如硬盤上的數據被修改,而cache中數據還是舊的,但其實他們指向同一個IP地址。
剩下都是些回答過程中延伸出來的一些小問題。還有一些數據結構的問題,比如紅黑樹。
這些題目都是考官現想現問的,總體來說難度都不是很大。不過其中也有陷阱,比如我就被最后一個臟數據的坑了,所以大家還是要認真一些哈~