面經

趕集網面試

首先第一感覺不是很好,因爲是在一個學校內部,沒有那種大公司的大氣,也沒有華麗的外表。

到了一樓大堂,接待說要等10點給面試官電話聯繫,就在大廳等到快10點的時候給面試官打電話,面試官親自下樓來接,感覺這點挺親民的,不過感覺面自己的都是跟自己差不多的年紀。。。囧

面試開始了。

面試官拿着我的簡歷看着:

1、你學過php麼?

沒有。當初學了一段時間的web,剛打算接觸php,然後進了acm班。

2、先寫一個代碼吧:給一個數組,寫一下二分查找一個數是否存在。

略。感覺面試的進度好快,上來先看基礎代碼寫的怎麼樣。而且面試官看的很細。看完之後就讓我把接口改改,然後可以讓兩個人分別對不同的數組調用進行二分查找。

3、你講一下vector的存儲機制吧。

我理解的vector就是一個動態數組

追問:那Vector 新添加一個元素是怎麼實現的呢?

重新分配內存空間,將原來舊的元素全部複製到新的存儲空間中去,然後再插入新的元素,撤銷原來的空間。

追問:那你說一下vector 的初始內存分配是多少?

2的整倍數,具體是多少忘了。。。(面試官迴應了個 嗯)

4、Map 的內存機制與二叉樹的時間複雜度

Map中一個key對應一個值,可以處理一對一的數據。(當時面試官只是默默的嗯了一下,沒說什麼,感覺到他的不滿意,後來跟同學交流忽然意識到自己應該說map內部就是自建的紅黑樹,太丟了)

追問:那你說如果查找一個key值是否存在複雜度是多少。

Logn

追問:那二叉樹呢

Logn

(感覺這也算勉勉強強彌補了我沒答到紅黑樹那個弱智的問題了吧)

5、虛析構函數的作用

我只記得當一個類被作爲基類的時候,才把析構函數寫成虛函數,具體什麼作用我忘了。

(虛函數哪一塊感覺自己根本就沒有掌握好)

正解:是爲了當用一個基類的指針刪除一個派生類的對象時,派生類的析構函數會被調用。

6、構造函數爲什麼不能是虛函數

因爲構造函數是在實例化對象的時候調用的,使用虛函數沒有實際意義。

追問:還有呢?(又是虛函數。蒙逼啊!)

額,這個。。。(只能默默的承認了)虛函數這一塊掌握的不是很好。

恩恩,沒事。(面試官的回答感覺讓人好無奈)

正解:http://blog.csdn.net/jiadebin890724/article/details/7951520

還沒真正看懂,需要加油!

7、那說一下if_def的作用吧

這個是條件編譯命令,也就是程序中某一部分內容只在滿足一定條件時才進行編譯

還有就是當包含多個文件的時候,有的命名會有衝突,需要解決這個問題

嗯(又是面試官的回答,也不知道自己答的怎麼樣)

8、說一下linux常用命令

Cdmkdirlscploginmvtopcatifconfigfindmountdu。。。

(感覺自己說的好亂,想起那個就說哪個,沒有章法)

9、說一下常用的排序算法

Sort,插入排序,選擇排序,冒泡,快排,歸併,堆排。

(昨天面妙計掛在了堆排上,回去惡補了一下堆排,囧)

10、說一下快排、堆排的思路吧

快排就是冒泡的一種改進,

選擇一個基準,分離成獨立的兩部分,一部分大,一部分小,然後對兩部分分別排序

時間複雜度:nlog2n

堆排時間複雜度:O(nlogn ) (最壞)

11、Python 的對象用過麼

沒有,暫時寫的東西都是一些基本的,字典用的比較多。

12、現在有一個文件 裏面有一系列的數,用空格隔開,找出101-200的數有多少個

將數據讀入到字符串,然後以空格讀出數據,當它大於1000的時候減一對100做除結果爲則計數器加1,輸出結果。

第二個直接用數組統計對應的數有幾個

第三個因爲時間關係沒想,用數據結構實現, 

13、說一下K均值聚類

隨機選取k個點作爲中心點,將每個對象找到與他最近的點歸到那一類,然後把每個點更新到類中數據的正中心,之後在更新對象,直到對象所屬的類不在變化,中心點也不在移動,聚類完成。

追問:如果K個隨機點選擇的不好了怎麼辦

之前沒想過,會導致這種聚類算法的效率下降吧

追問:還有呢?

(想了一會)別的沒有考慮到,感覺只會對時間效率有影響吧

追問:如果有奇異點,而你選擇的點不好呢?

哦,這個應該對結果沒有多大的影響吧,因爲他的對象所屬類和K個均值中心都在更新啊!(後來想了想,可能有面試官說的那個情況吧)如果有奇異點的話,可以採用權值分配消除奇異點的影響力或者寫一個奇異點的判讀機制去除奇異點。

嗯(面試官的回答,還是沒有任何有價值的信息)

14、現在我有一個隨機數生成器,只能生成1-3,現在我要隨機生成1-5,怎麼做

(一開始想了一會)可以隨機生成兩個數,然後兩個數組合

追問:嗯,具體的呢?

(仔細想一想不對,因爲那樣是有9種情況,無法做到生成5個人數隨機,後來面試官也提到了這個問題,然後就說,我們肯定是想要一個跟3,5都有聯繫的,對吧? 仔細一想,確實)

可以隨機生成5次,然後5次求和。

伴隨着這個問題,一面就這樣結束了,然後他說二面的同事還沒來,我們就開始聊天,當然少不了聊學校,問學校都學了點什麼,然後仔細一想,學校裏面教的都是一些語言工具 

 

沒一會,二面,同樣挺和善的一個人,看起來年齡不大。上來問我,你大概什麼時候可以入職,我們需要儘快,看來趕集網最近比較缺人啊。最近跟58合併了想要往大了搞吧!

 

1、現在給你一個直線,直線上有兩個人,A,B 兩人不可以通信。現在A,B,不知道自己相對於另一個人的位置,現在要讓兩個人相遇。

(當時拿到這道題挺蒙逼的,因爲確實不知道要幹啥!想了5分鐘,然後開始試着跟面試官交流,因爲當沒思路的時候跟面試官交流可以得到他想要的答案是什麼)

(我的思路就是,現在a不知道往左還是往右,b也不知道往左還是往右,我一開始還在想可不可以藉助第三方工具,後來被面試官否決,繼續糾結怎麼確定兩個人的行走方向,這時候面試官說可以把問題分解)

可不可以這樣,讓其中的一方比如B待在原地,讓A走,這樣就避免了走反的情況。

追問:嗯,對,然後呢?

另一個人就開始試探。

追問:怎麼試探?

比如:A往左走2步,見不到,然後回到原點,往右走四步,見不到,回到原點,往左走8步。。。直到遇見B

追問:嗯,可以。時間複雜度呢?

(暈,又是時間複雜度,這可是自己給自己出題啊!幸好沒說太難,想都沒想)接近n^2吧!

追問:不對。繼續看看

(還是大意了,沒想到問的這麼認真,想想也是,怎麼可能讓自己這麼輕易過關!不過這複雜度是真不會算具體的啊! 仔細看了看)

2^logn

追問:你看看還可不可以優化一下啊!

(怕什麼來什麼,不過那個複雜度還真是高,還怎麼優化呢,難道試探的數字梯度改改?沒影響嘛!)

剛剛B沒有參與,現在可以讓B也來這麼做,然後總距離縮短一半。

追問:然後呢?對效率有什麼影響?

(汗~~~!)沒影響

嗯(還好面試官就這樣放過了我)

2、寫一個簡單的代碼:用遞歸倒置鏈表

略。還是嚴謹性,當時緊張了,寫的有些搓,還忘了返回頭指針,不過大題上思路上沒啥問題,面試官也就放了。

3、看你學過web,那你學過php 麼?

(又是這個問題,趕集網很缺那個麼)

沒有,剛打算接觸php的時候進了acm,不過我感覺那些都是語言工具,對於有編程語言功底的人來說學那些比較好學(面經上說,面試要自信,給面試官的感覺就是很自信,你可以,相比於連自信都沒有,總覺得這些我搞不定的人更容易得到面試官的青睞,當然是自信,自負的話會讓人反感。)

4、你對我們現在的工作了解麼

不瞭解。

然後就是簡單的工作介紹。

5、你平時看什麼技術論壇、開源論壇麼?

看,比如知乎(當然,面試官也說那就是個扯淡的地方),還有csdn,博客園,51cto

偶爾會去Chinaunix。

追問:趕集網和58合併了知道麼?

恩恩 知道。

(然後就針對老家,興趣愛好,足球,以及薪資、住宿等問題進行了交流,也強調了如果收到offer ,下週一儘快來入職)

6、你有什麼問題

沒有了。

至此面試結束。

二面還親自送到了大堂門口(因爲出門需要打卡),感覺挺和藹的。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章