秒針超詳細面經(附答案)

2021-01-20 程式設計師喬戈裡

考試結束,班級平均分只拿到了年級第二,班主任於是問道:大家都知道世界第一高峰珠穆朗瑪峰,有人知道世界第二高峰是什麼嗎?正當班主任要繼續發話,只聽到角落默默想起來一個聲音:」K2」

秒針

本來寫差不多了,結果沒保存,重寫了一遍,各位記得點根辣條給我吃~安慰一下我這受傷的心靈~

秒針可能大多數人沒有聽過這家公司,秒針是一家廣告投放的公司,在這方面這個領域可以說是一家壟斷性的公司,據hr和我介紹他們說有其它競爭性的公司要不被秒針收購了要不就是競爭不過,那麼什麼是廣告投放的公司,就是比如說廣告商想讓公司A去投放給用戶,公司A說我投放給了100w用戶,那麼廣告商怎麼知道公司A就真的投放了100W用戶。秒針就是一家第三方公司,用來分析這100W用戶到底有多少水分。

秒針筆試

由於我沒有參加提起批,參加的秋招,得參加筆試。秒針的筆試是現場筆試,卷子有好幾頁,題目非常多,答題時間只有兩個小時。一開始是4道計算題,比如說數學中的組合運算和概率計算,還有就是計算完全二叉樹中有多少個節點,另外一道我忘記了。除了計算題,然後接下來題目都是手寫代碼的題,可能有8道左右記不清了,大多數是《劍指offer》的,我記得有合併有序鍊表,二叉中兩個節點計算最小公共祖先(這道題秒針筆試面試都喜歡考),求數組中最大的連續和(這道題秒針也喜歡考),對於一個字符串計算它的全排列的下一個顯示什麼(abc下一個就是acb),其它題目有點忘了,大體都是《劍指offer》難度,或者低於劍指offer難度的題。

秒針一面

秒針一面是在一家咖啡館,面試我應該是第一批,這個感覺是按照筆試成績來排的,秒針一面我是被兩個面試官狂轟濫炸,感覺他們兩個人一人準備了一個小本本,每個小本本上面應該有題目,就是從小本本上面不停地問我。

自我介紹
答:自我介紹是面試中唯一的自己主動介紹自己的環節,一定要好好把握好,你數據結構學的號可以手撕一個紅黑樹你就說我數據結構掌握地很好,反正就是要把自己的優勢凸顯出來,比如我是保研的以及對於java的知識較熟悉,我介紹完自己的本科經歷以後,我就說我是保送到本校繼續讀研究生,然後最末尾會加上自己熟悉java,然後面試官就會問java的一些東西;

項目介紹及其亮點
答:這個我以及用的我的這篇文章的項目亮點來介紹可以作為你面試的項目亮點的文章,不來看看嗎?

看你項目中用的python比較多啊?
答:額,我趕快說本科用的多一些,研究生的項目都是java寫的,希望把這個話題跳過去。

看你項目中有寫過爬蟲,爬蟲遇到過什麼問題嗎?
答:(1)說了遇到登錄問題,需要登錄的,然後我說一種解決方法是使用谷歌瀏覽器檢查然後先登錄,然後觀察傳輸的數據包,然後構造這些傳輸的數據包;另一種解決方法是使用webdriver+phantomjs去模擬瀏覽器的操作,完全模擬像人一樣的操作;(2) 遇到需要動態加載的問題,一種是觀察js請求,模擬這個js請求過程,另一種解決方法就是就是webdriver+phantomjs;(3)基於用戶行為,當一個ip短期內大量訪問,會限制這個ip,這個時候才有代理池,如果這個ip無法訪問,那麼就切換一個ip;

用沒用過開源的爬蟲框架?
答:我說用過scrapy,這裡大家一定要對說出來的東西有了解,要不然就別說,因為面試官一般會繼續提問

果然問我scrapy中,url去重是如何做的?
答:集合有去重的作用是。對於每一個url的請求,調度器都會根據請求的相關信息加密得到一個指紋信息,並且將指紋信息和set()集合中得指紋信息進行比對,如果set()集合中已經存在這個數據,就不在將這個Request放入隊列中。如果set()集合中沒有,就將這個Request對象放入隊列中,等待被調度。

問我scrapy的整體架構?
答:這個有點忘了,沒記全,大體說了下載器用來下載url,調度器用來決定將這個請求壓入到隊列中,還有爬蟲了,分析某一個特定的網站,制定特定的規則,把網站爬取下來。這個我剛才在網上搜了下,還有挺多的。

然後問我了解其它的開源爬蟲不?
答:不了解,然後就問我java基礎知識了。

問我java程序的初始順序有哪些規則?
答: 1.靜態對象優先於非靜態對象初始化;2.父類優先於子類進行初始化;3.按照成員變量的定義順序進行初始化4.靜態變量》靜態的語句塊》靜態方法》語句塊(構造方法)執行的順序。

問我看過《java編程思想》沒,裡面有很多java與C++的對比,知道幾個?
答:Java 沒有指針,只有引用,而 C++ 具有和 C 一樣的指針。Java 支持自動垃圾回收,jvm虛擬機,而 C++ 需要手動回收。Java 不支持多重繼承,只能通過實現多個接口來達到相同目的,而 C++ 支持多重繼承。Java 不支持操作符重載,雖然可以對兩個 String 對象支持加法運算,但是這是語言內置支持的操作,不屬於操作符重載,而 C++ 可以。還說了一個java中所有的對象都繼承自Object,C++不是。java是int,long,char等數據類型不同平臺都是固定的,C++不是,java具有很好的平臺移植性。

抽象類和接口的區別說下?
答: 1,抽象類裡可以有構造方法,而接口內不能有構造方法。
2,抽象類中可以有普通成員變量,而接口中不能有普通成員變量。
3,抽象類中可以包含非抽象的普通方法,而接口中所有的方法必須是抽象的,不能有非抽象的普通方法。
4,抽象類中的抽象方法的訪問類型可以是public ,protected和private,但接口中的抽象方法只能是public類型的,並且默認即為public abstract類型。
5,抽象類中可以包含靜態方法,接口內不能包含靜態方法。
6,抽象類和接口中都可以包含靜態成員變量,抽象類中的靜態成員變量的訪問類型可以任意,但接口中定義的變量只能是public static類型,並且默認為public static final類型。
7,一個類可以實現多個接口,但只能繼承一個抽象類。這裡我有一個記憶方法,大體是這樣子的,按照變量(普通變量,靜態成員變量),方法(分為普通方法,靜態方法),修飾詞,這三個方面去聯想。

java創建對象有哪些方法?
答:這個只能靠背,使用new,clone方法,反序列化,反射

由於我提及了克隆,問我深拷貝和淺拷貝有啥區別?
答:淺拷貝:被複製對象的所有變量都含有與原來的對象相同的值,而所有的對其他對象的引用仍然指向原來的對象。換言之,淺拷貝僅僅複製所拷貝的對象,而不複製它所引用的對象。深拷貝:對基本數據類型進行值傳遞,對引用數據類型,創建一個新的對象,並複製其內容,此為深拷貝。

來寫個二分查找 
答:這個二分查找很簡單,就是看這篇文章RNG輸了,但我們不能輸,記得把mid寫成(right-left)/2 + left就好,不要溢出。

寫完以後,接著讓我寫了一道劍指offer的題目。
答:題目連結:https://www.nowcoder.com/practice/459bd355da1549fa8a49e350bf3df484?tpId=13&tqId=11183&tPage=2&rp=1&ru=%2Fta%2Fcoding-interviews&qru=%2Fta%2Fcoding-interviews%2Fquestion-ranking
以下是我但那個是寫的代碼,幾乎完全一樣,大體思路就是用一個tempmax代表前面的連續數字的最大和,如果這個最大和是正的,那麼加上數組的當前數字,那麼這個連續的和是變大的,這個就是有可能的潛在的最大和。

這個代碼當時寫完,面試官沒看懂,覺得我是錯的,然後我舉了一個數組的例子,他們竟然還覺得是錯的,說我舉的例子太特殊,然後他們自己寫了一個例子,手動跑我的代碼,最後他說哎呀,這個寫法巧啊,然後和我說了抱歉,哈哈,這個時候大家覺得自己代碼沒問題,一定要穩住,別自亂陣腳

1public class Solution {
2    public int FindGreatestSumOfSubArray(int[] array) {
3        if(array.length == 0)
4            return 0;
5        int Max = Integer.MIN_VALUE;
6        int tempmax = array[0];
7        for(int i=1;i<array.length;i++)
8        {
9            if(array[i] + tempmax > array[i])
10            {
11                tempmax = array[i] + tempmax;
12            }else{
13                tempmax = array[i];
14            }
15            if(tempmax > Max)
16                Max = tempmax;
17        }
18        return Max;
19    }
20}

問了我如何讀取文件,打開一個txt?
答:我寫了下面的代碼,然後照著說了一下。沒完全寫出來。。。尷尬

1String pathname = "input.txt";
2File filename = new File(pathname);
3InputStreamReader reader = new InputStreamReader(
4        new FileInputStream(filename));
5BufferedReader br = new BufferedReader(reader); 

問我裡面那個是字節流,哪個是字符流?
答:FileInputStream是字節流,剩餘的兩個Reader都是字符流。

問我字節流和字符流的區別?
答: 字節流處理字節和字節數或者二進位對象,字符流處理字符,字符數或者字符串。

資料庫了解嗎,說一下索引的分為哪幾類?
答:分為聚集索引和非聚集索引,非聚集索引又有唯一索引,普通索引,主鍵索引,和全文索引。

問我什麼是聚集索引?
答: 聚集索引是數據行的物理順序與列值(一般是主鍵的那一列)的邏輯順序相同,也就是說索引中的順序也就是在內存中順序。

資料庫中如何建立索引?
答: 這個雖然沒用過,但是我背下來了,alter table 表的名字 add index (列的名字)

問我limit 查詢太慢如何優化?
答:我說採用order by ,子查詢優化(使用嵌套的查詢)

讓我寫一個子查詢優化
答:這裡有點忘了,說忘記了,尷尬。網上搜了一下是這樣的。

1select * from Member where MemberID >= (select MemberID from Member limit 100000,1) limit 100   

問我http請求報文的組成?
答:請求行,請求頭部,空行,和請求body。這裡就是背。

問我post和get的區別?
答:這裡區別挺多的,我只答出來get是冪等的,post不是冪等的(這個冪等和非冪等很重要,需要知道啥意思)冪等就是前後兩次請求的結果是相同的。get請求不安全,post安全。

說一下TCP的擁塞控制?
答:這個的話我是把下面這個圖大體畫了出來,結合著圖進行了講解。說了慢開始的指數增長,擁塞避免的線性增長,以及如果發生擁塞,那麼最初的TCP版本是降為0,從0繼續開始慢開始,現在的TCP版本是從閾值開始。

寫到這裡又想起了一個問題,讓我畫一下異常體系圖。
答:這個我只畫出來一兩個分支,感覺答的不太好,如果能把下圖都畫出來,就完美了。



反正感覺就是一頓問,沒有停歇,中途還給我低了一杯水,問了很多問題,秒針的一面是我面了這麼多家時間最長的,感覺有1個多小時,問的知識面很多,因為他們準備了一個小本本,感覺上面應該很多題,最後到了時間他們就說到這裡吧。然後由於項目很急,秒針的二面面試官沒有在現場,約好了晚上5點進行面試,然後當時下午還有一個茄子快傳的面試本來以為5點可以結束,結果沒有結束,最後5點我和面試官說時間不方便,可以7點面試嗎,調到7點面試。

秒針二面

電話時長大約是半個小時,有很多東西我忘記了,想起多少說多少哈。

自我介紹

項目介紹亮點介紹

又是問我爬蟲scrapy,問我除了scrapy對分布式爬蟲了解嗎?
答:我說不是很了解。

額,那你項目中的爬蟲是用到什麼?
答: 我說的是我自己手寫的,就一個簡單的下載網頁,然後分析網頁結構,提取裡面的內容。

行吧,因為我們公司一般業務場景都是高並發的,考考你大數據的題目,要給一個很大的文件(不能全部放內存,很大)按行來排序和去重,怎麼辦?
答:大數據的題目思想一般都是分而治之,先打大文件分詞大小均勻的若干個小文件,然後對小文件排好序,最後再Merge所有的小文件,在Merge的過程中去掉重複的內容,merge的話就是歸併排序的思想,可以在合併的過程中如果發現相同,那麼不存到文件中。

中途有秒針hr給我打電話,約我hr面試,額,他以為我是5點面試的,額,當時我很納悶,這二面都沒完,就約我hr面試,給我一種被欽定的感覺,我和二面面試管說了hr給我打電話,二面面試官說我和它說一聲。

那如果在上面的題目基礎上,如果不是排序,只是去重,有什麼好的方法?
答:對文件的每一行計算hash值,按照hash值把該行內容放到某個小文件中,假設需要分詞1000個小文件,則可以按照(hash % 1000)來分發文件內容,然後這樣就被分配到一個個小的文件,然後再這些小的文件中再去去重。

有些忘了,還記得一個是堆的建堆過程的時間複雜度?
答:說了O(n),說了一下,這個建堆的過程,然後說明這個過程就是O(n)

秒針hr面

hr面我基本求生欲特別高,當時因為聽說秒針包吃包住還不加班,我感覺是網際網路的天堂,非常想去。大體復刻了我在茄子快傳hr面前的表現。

問我手裡面有什麼offer,我對其他offer閉口不提,只說我有華為去哪兒,然後我沒等他繼續發問,我接著補充道,這兩家公司都不太想去。然後他問我為啥不想去,我說華為本身不是一家網際網路公司,而且聽說華為進去以後可能幹的活可能和你的offer錄取的職位不一樣,所以華為不想去,去哪兒我說給的薪資太少,也不想去。

他問我有女朋友嗎,我說沒有,問我家是哪的,我說山西,然後我接著補充道想離家近一些,這樣可以常回家看看,畢竟父母越來越老了。然後他問我對薪資滿意嗎,我說滿意。

最後他問完我了,問我有什麼想問的,接下來開始了我的表演。

我說如果面試通過,什麼時候可以拿到offer,想趕快拿到offer,然後籤約,不準備再繼續找了,暑假由於找工作也沒回家,想籤完工作去回家,想家了。

hr聽完我這一席話,說我很真誠,(⊙o⊙)…,然後說一周之內會給通知,然後接晚上。

作者喬戈裡親歷2019秋招,哈工大計算機本碩,百度準入職java工程師,歡迎大家關注我的微信公眾號:程式設計師喬戈裡,公眾號有3T編程資源,以及我和我朋友(準入職百度C++工程師)在秋招期間整理的近200M的面試必考的java與C++面經,並有每天一道leetcode打卡群與技術交流群,歡迎關注。

相關焦點

  • 如果時鐘的秒針足夠長,經過1秒後,秒針末端會超光速嗎?
    但如果做一些思想實驗,超光速似乎是輕而易舉的事情,我們很容易構思出超光速現象。想像一下,如果一個時鐘的秒針特別長,那麼,經過1秒之後,秒針的末端會超過光速嗎?畢竟,半徑越大,線速度越大,只要半徑足夠大,線速度豈不是就能超光速了?
  • 超詳細的正宗水煮魚製作方法 附私家增香秘笈(超詳細圖解)
    這裡介紹的水煮魚做法也是四川本地的做法,我盡我所能敘述得清楚詳細一些。    有朋友問:「為什麼我做的水煮魚總是沒有餐館的那麼香呢?」那麼我告訴你一個小竅門,保證你做出來的水煮魚噴香噴香,老遠就聞得到哦!
  • 秒針
    為你讀詩: 第20期Hi,你們好,我是對小姐,很高興在這裡遇見你~秒針分針滴滴答答,提醒著我們時間就這樣在指尖划過。在時間流逝中,我們還記得些什麼?今天,對小姐要和你分享一首叫做《秒針》的詩。在這首詩裡,詩人沈徹給我們講述了秒針擺動中,他記憶中的一切。
  • 動態秒針
    動態秒針 生活工具 大小: 0.19M 版本: 1.0
  • 104 阿里業務型產品經理實習面經
  • 北師大版六年級上冊期末測試重點訓練,附詳細講解過程及參考答案
    相信六年級同學已經全面進入複習階段,下面小編分享一套北師大版六年級上冊數學期末測試卷,這套題綜合了各種題型的訓練,並附每道題的詳細講解過程和參考答案。第四大題,計算題同學們計算一定要仔細,答案後面有。下面是本套題的參考答案,供同學們複習參考。
  • 帥氣大方的大男童毛線背心針織,附詳細編織教程
    往期回顧:新生嬰幼兒毛衣套件編織,非常的漂亮,附教程圖解一大批編織花樣圖解撲面而來,非常適用(附圖解)從上往下織的韓版兒童帶帽子小背心,附詳細編織教程用五根棒針編織美麗的葉子花毛衣,新穎大方,附詳細編織教程10款寶寶鞋的編織做法,媽媽們做的鞋子超溫暖(附教程)
  • 卡西歐手錶秒針不走 卡西歐手錶秒針不動是什麼情況
    有不少朋友在使用卡西歐手錶時都出現很多問題,卡西歐手錶秒針不動了就是最常見的問題之一。那麼出現這種情況是什麼原因呢?下面就讓腕錶之家來告訴大家。卡西歐手錶秒針不動是什麼情況       遇到秒針不走的情況我們的根據手錶的類型的不同來找到合適的解決方案,如果是機械的話可能是沒有上勁,經常上上勁就好了,全自動機械錶須靠手臂擺動而自動上弦,所以每天必須配帶12小時以上,才可確保計時準確。
  • 「戴上能發」,雅克德羅的大秒針腕錶,見到就是榮幸!
    獨特的偏心大秒針腕錶的基礎款一般分為兩種,兩針和三針,後者多了一根秒針,而三針款按照指針的布局一般又分為兩類,大三針和小三針,區別是秒針是否與時、分指針同軸。小秒針款是個獨特而優雅的存在,之所以稱之為小,是因為秒針在單獨設置的小錶盤中長度一般很短,無法做到如大三針的秒針那樣長。
  • 請收下這份超詳細美國配鏡指南!!!
    由於是在美國第一次配眼鏡,所以自己做了非常多的research,地裡有幾個關於美國配眼鏡的帖子,但是還都不是很詳細,所以今天樓主就事無巨細的寫一個配眼鏡指南。首先就是先通過網上的一些帖子,通過自己的臉型來選擇形狀適合自己的鏡框。比如我的臉偏方形,就需要用偏圓形的鏡框來中和一下。知乎就有帖子講的如何清楚識別自己的臉型和如何根據臉型來尋找合適的框架形狀。
  • 如果時鐘的秒針特別長,只要轉1秒,末端是不是超光速了?
    當然這個特長秒針也一樣。生活中我們看到時鐘的秒針一秒一秒的轉動,沒有發現這個末端和原點處有任何的延遲現象,我們認為這兩個點是同步的。小時候你爹拿木棍抽你屁股的時候,你看到你爹舉手的那一刻,瞬間屁股就能感受到火辣辣的陣痛,這說明你爹掄木棍的時候,木棍末端貌似也沒有延遲。
  • 2021 阿里字節快手面經 & 個人成長經驗分享
    hr 五面 (60 min)下班後都在做什麼,問的都是過往經歷,問的太詳細了,讓人不舒服。現在針對我們的業務,急需增加一個新的模塊位置,你會怎麼設計?數據怎麼展示……沒錯,hr 還問技術相關的問題。………個人經驗分享這個應該是各個面經的保留節目了,我也在此留下筆記。主要分兩個方面來講,一個是前端技術的學習,另一個是面試當中需要注意的點。
  • 德國人做了這塊沒有秒針的手錶,我們看到的是什麼?
    答案五花八門,有人說表殼、錶帶、字體顏色、盤面色澤、還有人覺得很輕薄,唯獨沒有人注意到——它是一塊兩針表。也就是說,只有時針和分針,沒有秒針。其中有個女生偷偷私聊我說:「好喜歡這種文藝範兒啊,什麼秒針,我不在乎,反而覺得挺簡潔和諧的。」很多時候,我們的第一反應來自視覺效果——功能逐漸退化到了滿足設計需求而存在。手錶作為配飾來說,它的意義看起來更純粹了。今天就和大家聊聊這塊「文藝範」的手錶。
  • 3款超詳細的蒲公英刺繡,針法簡單,看完新手也能學會!附圖解
    這裡小愛同學把以前也給大家分享過2次蒲公英的刺繡教程也附上,有很詳細的過程解說,小夥伴們可以看看呢,想學針法也可以關注我們零基礎學刺繡專欄。超簡單蒲公英的刺繡教程,附9個步驟圖解,適合新手學習!立體三色蒲公英刺繡,2種針法,8個步驟簡單學會!
  • 歷屆世奧賽各年級段真題附答案匯總篇
    小編整理了歷屆世奧賽真題附答案,供大家參考!        歷屆世奧賽真題附答案匯總篇                           2011世奧賽 三年級 四年級
  • 秒針攜三大音頻發布移動音頻媒體價值白皮書
    10月22日,中國領先的第三方營銷數據技術公司秒針系統在京召開發布會,並聯合喜馬拉雅FM、蜻蜓FM、多聽FM這三大移動音頻發布了國內首個《移動音頻媒體價值白皮書》,為發掘音頻媒體價值及推動行業建立統一的音頻評估標準,邁出了第一步。
  • 睡一覺醒來發現秒針不見,回過神來才發現原來是貓咪做的好事!
    飼主張家榛這天早上一睡醒,就下意識地看了看自己房間裡的大時鐘,沒想到不看還好,一看差點氣到暈倒,她最愛的酷企鵝時鐘上的秒針竟然「被消失」,整支完全不見蹤影,直到她回過神來,才發現原來是家裡的機車貓做的好事,而她也直呼這不是清蒸紅燒就可以解決的事!
  • 停止的掛鍾秒針為何總在「9」的位置
    停止的掛鍾秒針為何總在「9」的位置有一個有趣的現象,不知道大家有沒有注意到:掛在牆壁上的鐘,當電池的電能耗盡而停止走動時,其秒針往往停在刻度盤上「9」的位置,這是為什麼?當石英鐘內的電池電能耗盡,秒針停在錶盤上時,重力產生最大的反向力矩。
  • 女面試官:耗盡電的鐘表,秒針停在哪?研究生秒答「9」,被淘汰
    女面試官:耗盡電的鐘表,秒針停在哪?研究生秒答「9」,被淘汰職場中面試的時候會有各種奇葩的問題,一不小心回答不好就會掉進面試官挖的陷阱。面試者也是對這種面試問題各種吐槽,但是沒辦法,為了找工作,只能硬著頭皮回答。最近又到了找工作的旺季,我們來看看這家公司奇葩的面試吧。
  • 秒針系統:廣告效果評估雲平臺
    正是由於多年來對網際網路用戶行為的收集,以及在廣告效果分析優化領域形成的技術優勢,使定位於完全中立的第三方廣告效果評估服務提供商——北京秒針信息諮詢有限公司(秒針系統),受到多家投資機構青睞,並於2011年10月得到凱鵬華盈、寬帶資本等多家機構共2000萬美元的投資。