當前位置:學問君>學習教育>考研>

HuLu筆試面試經驗

學問君 人氣:3.12W

10.7上午接到HuLu打來的電話問晚上有沒有時間,要電話面試,我說可以,第一次接到電話,而且還是電面真有點兒緊張。

HuLu筆試面試經驗

晚上8.00整電話準時打過來,先讓自己介紹了一下花了2分鐘左右,然後讓我選擇一個自己喜歡的項目介紹,介紹項目花了3分鐘多一點兒,然後他問了一些簡單問題:

l 項目的難點

l 存在的問題

l 如果再給我兩個月,讓我說出項目還可以做何優化

然後開始面試技術問題:

第一個問題是語言掌握情況,接下來都是算法問題

1、 問會不會C++,我說看過書,沒做過項目,然後他說:“那你C很熟了”,我說還可以吧,他問如何減少內存泄漏或多次釋放同一個內存帶來的危險,我就按照C 語言的編程風格說盡量在一個函數內申請空間然後釋放,malloc 和free不要跨函數,然後他問C++如何實現,我說,類裏面如果有指針成員,必須自己實現拷貝構造函數、重載賦值運算符,感覺他不太滿意,又問我智能指針如何實現,忘了L。

問算法問題前,他先說明如果我見過告訴他,說不要浪費時間,我感覺如果你見過四個只跟他說你見過兩個最好。

2、 問我對web技術瞭解如何,我說不太瞭解J

3、 冒泡排序複雜度,快速排序複雜度【問得很淺】

4、 已知二叉樹的兩個節點,求最近的公共祖先

我說很早就見過,他就直接問了下一個問題

5、 1­­­­—n,共n個數去掉一個,如何快速知道缺失的數?

我說見過,他又問,如果少兩個呢?我想了一下,說可以申請空間類似於散列的方式來做,就散列他又問了幾個問題:

(1)、我平時常用的散列函數

(2)、對字元串如何構造散列函數

(3)、衝突率如何,如何解決衝突

回到原題,他說這種方法可以,但是申請可額外空間,如何不申請額外空間,我想了好一會兒:說可以這樣求出 a+b和a*b即可,他說這樣不好,馬上說”不能說不好”(J),讓我想想別的方法,最後他說可以求出a+b和a^2+b^2。

6、 兩個鏈表如何判斷相交

我說見過,他說如何找出交點?我想了一會兒說,先求出鏈表長度,然後申請空間存儲鏈表的.地址,保證可以從後向前比較,他說不申請空間如何實現?

想了一會兒沒思路,他提示如何利用你求出的鏈表長度呢?我馬上有了思路:先定義兩個指針指向鏈表頭,讓指向長的鏈表指針先走一定的步數,然後兩個指針同步移動判斷。

7、 一個包含n個元素的數組,其中一個數重複超過n/2次,如何找出這個數

我說就是求中位數,然後他說如何做,我說用快速排序的partition函數,他問複雜度是多少我說O(n),他問爲什麼,我簡單給他說了一下複雜度的遞歸式就OK

8、 如何判斷一個鏈表存在環

我說見過他又問,如果存在環,如何確定交點,想了一會兒,沒思路,它提示說,將環斷開,我茅塞頓開,說這就是兩個相交鏈表判斷交點位置的問題了OK.

9、 如何判斷一個數是2的冪

(x + ~0)&x

暫時就想到這麼些題了,其他想到再補充。總共1個小時零10分鐘左右。