百度面試小結

2021-06-02 15:48:40 字數 1936 閱讀 3423

首先就是自我介紹啦,接著我們聊到前兩天csdn資料庫被黑導致使用者密碼被盜,然後聯絡到我和同學做的乙個小專案,專案是用php寫的,面試官就問我是怎麼處理使用者登入資訊的,我答用cookie,當然我知道這個很不安全,但是小**,只供本校學生使用,就沒有考慮http傳輸時被竊取,當然我資料庫裡面是用md5加密過的。面試官就問我在傳輸的過程中應該怎麼保密,我的第一反應就是加密啊,但是至於怎麼加密真的不知道。後來這個問題就pass過去了。

下面就是手寫**,這兩天也看了些面試題,心裡還算有點底氣吧,但是不緊張是假的,多少還是有點的。也沒寫啥多難的題目,就一二叉樹的前序遍歷,我一分鐘不到寫出了個遞迴演算法,這個大家都會寫,然後面試官就讓寫迭代的**。資料結構我學過,書上有的迭代的**我看都沒看,只是憑藉著自己的理解吧,也就是把遞迴的棧具體實現就可以了,可惜第一次寫的時候想簡單了,寫好之後面試官讓自己跑個case驗證下,當時就傻了,還沒跑呢,我就自己看出來不對了。接著就是改**啊,用到set判重,然後認真改下,也跑了case,應該程式是沒有錯的。回來看了看課本上的偽**,要比我寫的簡單些,大體思路肯定是一樣的,都是棧的實現。這裡浪費了不少時間。

接下來面試官又出了個題目,這個題目沒有讓寫**,這時候離面試結束時間還差大概15分鐘吧。

題目是這樣的,給定乙個百萬級的字典,把裡面的同源詞分組輸出,同源詞定義:abc,cba,bac等只要是單詞中每個字母出現的次數相同的單詞就是同源詞,給出乙個演算法,並且說出時間複雜度和空間複雜度和怎麼儲存字典。

儲存應該用stl中的string就可以了。

當時就想了個比較搓的演算法吧,時間複雜度是o(nlogn+n^2m),n表示字典中單詞的數目,m表示單詞的長度。

具體做法就是先對字典按照長度從小到大排序,因為同源詞肯定是長度相同的單詞,這裡只能算乙個簡單的優化。

接下來就是用二重迴圈來查詢字典,當然只比較長度相同的單詞,然後比較兩個單詞每次字母出現的次數,找出同源詞,然後把同源詞的單詞全部丟進set中,這樣後面就可以跳過已經丟進set中的單詞了。這應該是最簡單的方法了,不過說出演算法的時候,面試官一直讓我說慢點,把演算法的思路說清楚能讓他更好的理清我的思路,我想這也是考我吧。

然後演算法提出來了,這個肯定不是最優的演算法,忘記說了,剛開始沒有加資料範圍的。加上上面的資料範圍這個演算法肯定會掛掉的,那麼就要優化,我腦中很清楚肯定有o(nlogn)的演算法,但是當時沒有想出來吧,這時候離結束的時間只有2分鐘吧,不一會面試官就告知面試時間到了。

最後也是慣例啦,讓我問他一些問題,別的我也沒多問,就問了點,他們的工作組是做什麼的,用什麼程式語言和開發環境,得到的答案是:研發部肯定是做產品的研發,具體的研發產品我記不清了,用的開發語言主要是php和c,開發平台是linux,如果去實習肯定有個專門的輔導員帶領。

回來的路上就在想最後那個問題的優化,logn讓人能想起來的方法也就二分或者排序,可以確定這題的思路就是貪心,二分貌似不能夠啊,一直就在想排序怎麼排。

回到宿舍想到乙個時間複雜度為o(nlogn+nmlogm+n)的演算法,這種方法需要使用額外的記憶體空間,可以看作是空間換時間,首先就是對字典中的每個單詞按照ascii進行排序,這樣當然就破壞了原字典,所以需要另外的儲存空間來保留原字典,然後再對排完序的字典進行字典序的排序,這時候相同的單詞肯定是連在一起的,這時候就遍歷一遍字典,按照一種設計的排序後的字典和原字典的一種對映關係,找出同源詞進行輸出,這樣問題就應該解決了。可惜的就是當時沒有在第一時間想出來。

然後又和乙個不認識的人通過乙個認識的人qq傳話,他提出了乙個可以實現o(n)的演算法,找到乙個合適的雜湊函式能夠把同源詞全部雜湊成相同的值,這樣就可以在o(n)時間複雜度內解決問題,問題的關鍵就是如何找到這個雜湊函式,而且找到的雜湊函式不能只對當前字典有效,因為字典可能隨時補充新的單詞,要保證對任意單詞的正確性。

最後總結下這次面試吧,自我感覺不好,首先先序遍歷迭代的**首先不應該寫錯,並且在此花費了比較長的時間,最後的乙個問題現在覺得nlogn的思路應該不難想出,當時應該能夠給出此演算法,剛剛開始一些問題的回答也不太滿意。所以對此次是否能夠進二面不報希望。

感謝貓哥辛苦找人幫我爭取的面試機會,很感謝貓哥。

百度面試感想

下面就講講面試的過程,我報的移動終端開發,開始是自我介紹,我想這個已經介紹了大概好多次了,等我說完後,他就問我感覺筆試怎麼樣,我就說筆試有點難,然後叫我寫一道字串的題 乙個字串a abcd b cdab 怎樣去判斷b是否為a 字串左轉而成的結果,然後寫了二叉樹的深度優先遍歷,昨天晚上看了下,但是過去...

百度實習面試

c 1 c 細節語法,虛函式,多型,vector 2 寫 二分查詢 快排 改進 逆置鍊錶 3 三次握手 tcp ip結構 4 linux命令 5 資料庫語句 php 1 php寫程式 2 php語法 3 mysql索引 事務 併發 4 mysql多表設計 5 php執行過程 6 c 編譯過程 pyt...

面試分析(百度)

這是別人面試的題目,我自己無聊嘗試完成下 1.給乙個函式,返回0和1,概率為p和 1 p 請你實現乙個函式,使得返回0和1概率一樣。分析 該問題在左騰雲的書上有講過,思路一般利用乘和加數學方式完成,該題共分母 p 1 p 回答 設f x 為0 p 1 1 p p f x 為0 p 1 1 p 1 p...