拼多多【學霸批】面經

直接上乾貨了面試

時間:2018-08-12
地點:浙大玉泉校區
投遞崗位:平臺研發工程師
應該是每一個人都有三面(兩輪技術面,一輪HR),三面是平行的,順序不一。redis

一面:技術面
持續時間:80分鐘左右
面試官看起來比較好,開場自我介紹,面試官瞭解一些基本狀況。
開始問項目,面試官挑了我一個本科作過的比賽,讓我說,主要是就是說原理,具體實現沒問(由於面試官不懂控制理論。。)
而後問了一個近期的項目,問了mycat,怎麼分庫分表,大家數據庫怎麼設計的,爲何這麼設計,分表的依據,怎麼優化
我想了一下子答的。
問了redis應用場景,數據類型,數據結構,淘汰機制。
問了數據庫索引,有哪些,有什麼用。
接下來開始問我學過哪些課(由於我是跨考的),而後問了經常使用數據結構有哪些,排序算法,相應的複雜度,不是很難。
隊列和棧的區別,現實生活中的例子。
樹,n個節點的樹的高度(m叉,二叉)
圖的種類,應用場景
紅黑樹的應用場景(幸虧沒多問,就問了場景),解決什麼問題。
重寫筆試題,具體題目是,給一個字符串(長度4k),順時針打印成正方形,這個討論了有點久,而後問怎麼優化。算法

我開始給的方法:用二維數組存好
例如abcdefghijkl(k = 3)
打印結果:
```
abcd
l  e
k  f
jihg
```
優化後的:
第一行和最後一行直接打,中間的,判斷頭和尾在字符串中的位置便可。
好比,i從1開始,
第i行的開頭在字符串str中的位置就是str.length() - i
第i行最後一個字符在str中的位置:k + i

計算機網絡數據庫

瀏覽器地址欄輸入www.baidu.com發生什麼,我說了dns,tcp,http 之類的,比較概況
面試官:dns具體流程,怎麼查詢
我大概從緩存,再到嵌套查詢答的

操做系統數組

死鎖條件

Linux
怎麼看文件行數,這個我真不懂,只知道tair。
字符串匹配,grep,awk瀏覽器

HR面
沒錯,HR在第二面
沒啥好說的,自我介紹,興趣愛好,工做地點,加班狀況什麼的。沒問技術,差很少20分鐘。緩存

技術二面
面試官可能還沒30吧,看起來也還好說話。網絡

自我介紹
挑一個項目講,讓我講原理,畫圖,解釋給他聽。
基礎算法:最大子數組,我原本想說dp法的,後來以爲太套路了,直接說了空間和時間複雜度最小的(從dp演化而來),
leetcode入門題。。代碼以下,基本一致數據結構

public int maxSubArray(int[] nums) {
        if(nums == null) return Integer.MIN_VALUE;
        int sum = 0;
        int left = 0;
        int res = Integer.MIN_VALUE;
        for(int i = 0; i < nums.length; i++){
            if(sum < 0){
                sum = nums[i];
                left = i;
            }
            else{
                sum += nums[i];
            }
            res = Math.max(res, sum);
        }
        return res;
    }

接着開始讓我重說一下筆試題的第三題(最多共同好友)
是這樣:有不少用戶,每一個用戶都有好友,如今給定一個用戶,讓查和他共同好友最多的人(這我的和那個用戶不是同一我的)
好比:
id 好友
0 1 2 3
1 0
2 0 3
3 0 2 4
4 3
我說了個人方法(用集合,暴力)
面試官提示:若是用戶特別多,可是好友關係不多,怎麼辦。
我想了會。給出優化方案:只查找給定用戶的好友的好友便可。tcp

而後開始問GC,直接讓我說,我說了幾種方法
面試官問了哪些對象能夠作GCroot,我說了幾個,沒說全。。

以後就是HR讓回去等通知了(涼了?)貌似每一個人都是三面。

相關文章
相關標籤/搜索