38 百度面試 天平,url等

2021-06-25 21:14:57 字數 1031 閱讀 7570

/*

1.用天平(只能比較,不能稱重)從一堆小球中找出其中唯一乙個較輕的,使用 x 次天平,

最多可以從 y 個小球中找出較輕的那個,求 y 與 x 的關係式。

2.有乙個很大很大的輸入流,大到沒有儲存器可以將其儲存下來,

而且只輸入一次,如何從這個輸入流中隨機取得 m 個記錄。

3.大量的 url 字串,如何從中去除重複的,優化時間空間複雜度

*/ /*

1.記住是唯一較輕的,只有乙個

每次分三份,a,b,c

稱ab;如果a=b,則輕的在c中,否則在ab小的那堆中

所以y=3^x

2.所有的個數n,nm:

用乙個n,rand的隨機數,r=rand(n),如果r在[0,m]區間,置換,否則丟棄不管 ;

或者 用大小為m的陣列arr[0:m-1]來儲存隨機抽取的元素

arr[0:m-1]逐步初始化為輸入流的前m個元素的乙個隨機排列。

對於輸入流中的第k (k>m)個元素,後面元素,隨機生成乙個[0,k-1]區間內的整數i,

如果此隨機整數i小於等於m,那麼就用第k個元素覆蓋掉arr[i-1],

否則,丟棄第k個元素。

3.用hash

1. 記憶體夠用,非常大,將url存入hash鍊錶,每個url讀入到hash鍊錶中,遇到重複的就捨棄,

否則加入到鍊錶裡面,最後遍歷得到所有不重複的url。

空間複雜度m,時間複雜度為o(n+n/m),m為不重複的url,n為總url數

2. 為了解決記憶體可能不足的問題,需要把hash鍊錶變化成普通的hash表,

每個hash表元素指向乙個檔案,

這個檔案記錄了所有該hash值對應的無重複的url,

那麼在加入url的時候就遍歷對應檔案中的url,沒有重複則加入到檔案中。

但是每次都要讀寫檔案,消耗的時間應該是上一種方式的三倍(依賴於io速度),

而對記憶體的要求比較小。乙個改進是加入url的時候進行排序,這樣能減少比對的次數。

*/

百度面試題 天平稱重問題

問題描述 用天平 只能比較,不能稱重 從一堆小球中找出其中唯一乙個較輕的,使用x 次天平,最多可以從y 個小球中找出較輕的那個,求y 與x 的關係式。解題思想 該題主要考查邏輯思維能力,我在首次遇見該題時,首先想到的對半拆分,找出其中較輕的一半,然後在進行對半拆分,如此迴圈直到找出較輕的小球。這樣得...

百度面試小結

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

百度面試感想

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