一面
首先是自我介紹睡腿,簡(jiǎn)單問了一些項(xiàng)目相關(guān)的問題。
后面問了一些Java語言相關(guān)的問題,但是因?yàn)槲液芫脹]有用過Java了所以就大概說了下Java大概的一些語法類的東西御吞。
后面問了一些數(shù)據(jù)結(jié)構(gòu)的知識(shí),解釋數(shù)組漓藕、queue和鏈表陶珠,并解釋數(shù)組 queue 鏈表分別如何實(shí)現(xiàn)和優(yōu)缺點(diǎn),并選取了一個(gè)具體的應(yīng)用場(chǎng)景享钞,讓選擇使用數(shù)組還是鏈表揍诽。那個(gè)實(shí)例我不記得了,但是是需要通過下標(biāo)快速訪問的栗竖,所以顯然是用數(shù)組暑脆。下面放上一個(gè)相關(guān)資料
后面問了mysql的相關(guān)問題,知道哪些mysql語句狐肢,并實(shí)現(xiàn)一個(gè)查詢某個(gè)酒店t1-t2時(shí)間內(nèi)入住的客人數(shù)問題添吗,首先設(shè)計(jì)Hotel、Room处坪、Guest以及需要的多對(duì)多關(guān)系幾張表根资,然后寫它們都需要哪些字段架专,并寫出查詢語句。
之后問了幾個(gè)網(wǎng)絡(luò)相關(guān)的問題玄帕,比如網(wǎng)絡(luò)幾層結(jié)構(gòu)以及tcp協(xié)議部脚。網(wǎng)絡(luò)有幾層我當(dāng)時(shí)忘記了,后來查了一下是7層裤纹,OSI模型委刘。然后TCP協(xié)議是什么,我只答到了三次握手鹰椒。锡移。不過貌似主體就是這個(gè)吧~TCP協(xié)議。
后面就是一個(gè)算法題了漆际,給定一個(gè)長(zhǎng)度為N(1<=N<=10000)的小寫字母串淆珊,找到第一個(gè)只出現(xiàn)一次的字母,并輸出字母和位置奸汇。這個(gè)題很簡(jiǎn)單掃一次記錄每個(gè)字母出現(xiàn)的位置和次數(shù)然后掃一遍26個(gè)字母就可以了施符。
最后是一道智力題,一個(gè)圓形蛋糕里面有一個(gè)矩形洞擂找,如何一刀把這個(gè)蛋糕平分戳吝。很簡(jiǎn)單,但是當(dāng)時(shí)沒想到贯涎。听哭。連接圓心和矩形的中心就可以了。塘雳。推廣到多邊形的洞也一樣陆盘,連接圓心和多邊形重心即可。
二面
自我介紹時(shí)實(shí)驗(yàn)室工作相關(guān)問了很多問題粉捻,比如實(shí)際系統(tǒng)如何評(píng)估礁遣,實(shí)際系統(tǒng)和算法結(jié)果不一致時(shí)如何改進(jìn)model,最終總結(jié)有兩點(diǎn)肩刃,一是調(diào)高實(shí)際數(shù)據(jù)在訓(xùn)練數(shù)據(jù)中的比重,二是利用實(shí)際數(shù)據(jù)修正訓(xùn)練結(jié)果杏头。
后面是一道算法題盈包,螺旋打印一個(gè)n*n的正方形(比如螺旋打印一個(gè)3*3的正方形結(jié)果如下面所示) 面試官提示的很清楚,先把問題拆分醇王,看如何打印一圈size為n的數(shù)字呢燥,然后之后打印size為n-2的數(shù)字即可,然后每圈確定起始數(shù)字和size之后便可以確定的打印出這圈了寓娩,一次長(zhǎng)度為size-1的循環(huán)打印出一圈每個(gè)位置對(duì)應(yīng)的數(shù)字即可叛氨。對(duì)于每圈呼渣,假設(shè)size是s,起始數(shù)字是start, 起始位置坐標(biāo)是i, j寞埠,當(dāng)前偏移是bias的話屁置。整體代碼變?nèi)缦滤?/p>
1 2 3
8 9 4
7 6 5
三面
首先是python基礎(chǔ)基礎(chǔ)知識(shí) ,迭代器和生成器(yield)迭代器和生成器仁连。
如何實(shí)現(xiàn)xrange蓝角,這個(gè)在理解了迭代器和生成器基礎(chǔ)上就可以很好地實(shí)現(xiàn)了。
利用python lambda函數(shù)實(shí)現(xiàn)把一個(gè)數(shù)組偶數(shù)乘以二奇數(shù)乘以三輸出,當(dāng)時(shí)忘了具體語法了饭冬。使鹅。語法有錯(cuò)誤,也忘記了map昌抠,最簡(jiǎn)便的寫法應(yīng)該是患朱,其中a是輸入的數(shù)組
print map(lambda x: 3*x if x%2 else 2*x, a)
最后是一道算法題,有一個(gè)長(zhǎng)度為L(zhǎng)的數(shù)組炊苫,給出它們的價(jià)值分別是v1-L麦乞,如何切割繩子使得價(jià)值最大。是一個(gè)動(dòng)態(tài)規(guī)劃問題劝评,按照第一刀切在哪里分類姐直。通過記錄每個(gè)長(zhǎng)度的繩子切割所能獲得的最大值來計(jì)算,時(shí)間復(fù)雜度是O(n^2)蒋畜,題目不難声畏,在此不再貼代碼。之后LeetCode遇到相似的算法題再放鏈接好了0.0