1. 程式人生 > >[網易面試]自己總結(三)

[網易面試]自己總結(三)

海量資料查詢top k,演算法有什麼極端情況?

  1. 利用hash將大檔案轉換成為N個小檔案
  2. 對小檔案進行hash_set(key, count)統計
  3. 對小檔案的count排序,取出前K個key
  4. 對所有小檔案的top K進行總排序,得出最終top k
    極端情況是重複key超過了一半瞭如何解決
  5. 對所有檔案進行hash,如果產生了一個小檔案還是比較大,在進行N此hash,假如還是一樣大,則進入對該檔案進行單獨處理
  6. 對檔案切分成為M個小檔案,對每個小檔案進行hash_set(key, count),再對M個小檔案進行key的count的統計

海量url,如果最長公共子串長度超過K,說明是違規,問如何找出所有違規url

假如url能夠轉換成為ip,則進行如下處理
1. 對所有url轉換成為ip,建立tire-tree
2. 對得到的ip進行如上方法的hash劃分成為小檔案,對小檔案進行hash_set(key, count)
3. 對count不為0的key進行KMP的匹配,超過K的標記為違規url
假如url不能夠轉換成為ip,則進行如下處理
1. 將檔案隨機分為兩個小檔案,用bloom fliter求兩個小檔案的公共url
2. 對取到的公共url進行匹配,記錄長度超過k的url
3. 分別對兩個小檔案迴圈上面兩步,直到檔案url數量為1000,在利用量量對比的方法,取出公共子串大於k的url
4. 整理即為最終結果

http://www.cnblogs.com/heaad/archive/2011/01/02/1924195.html
http://www.cnblogs.com/mmpc/articles/2047474.html

兩個應用間如何通訊,有什麼方法

持久化儲存有哪些結構,分別在什麼場景下應用

  1. 跨裝置持久化儲存最好採用sqlite,因為其通用性
  2. NSUserDefault比較適合儲存一些設定資訊
  3. CoreData是預快取資料的首選,序列化比較方便
  4. plist適合儲存一些系統物件資料
  5. NSKeyedArchive適合輕量級的快取資料

資料庫的索引是什麼,有什麼引擎,建立索引的時候要注意什麼

選用B+樹索引的原因

  1. 紅黑樹父子結點相隔較遠無法利用區域性性,並且其I/O次數可能更多,因此不如B+tree高效
  2. B+tree一個節點可以表示物理儲存中一頁,能夠僅一次I/O讀取資料
  3. B+tree葉子節點有連結串列結構,適合區域性資料讀取原理
  4. B+tree節點不存取data,且出度更大,因此一頁中可以保留的區域性內容相對B-tree多

MyISAM和InnoDB

相同的是二者都使用了B+tree
不同的是:

不同點 MyISAM InnoDB
聚集與否(即索引檔案是否與資料分離) 非聚集 聚集
區別點 引用了主鍵的地址 引用了主鍵的Data域
優點 由於引用的是主輔鍵的地址,因此建立索引是相互獨立的 直接主鍵索引查詢會比較快
缺點 直接索引速度稍遜InnoDB 主輔索引切換的代價大,需要兩次索引檢索

建立索引需要注意的幾點

  • 第一種情況是表記錄比較少,例如一兩千條甚至只有幾百條記錄的表,沒必要建索引,讓查詢做全表掃描就好了。至於多少條記錄才算多,這個個人有個人的看法,我個人的經驗是以2000作為分界線,記錄數不超過 2000可以考慮不建索引,超過2000條可以酌情考慮索引。

  • 另一種不建議建索引的情況是索引的選擇性較低。所謂索引的選擇性(Selectivity),是指不重複的索引值(也叫基數,Cardinality)與表記錄數(#T)的比值:

    Index Selectivity = Cardinality / #T
    顯然選擇性的取值範圍為(0, 1],選擇性越高的索引價值越大,這是由B+Tree的性質決定的。

遠端推送是如何實現的

https的互動過程,與http的區別,http協議的大致內容,http中keep-alive和TCP中的keep-alive

分為request和response

request

  1. firstline : method url + version number
  2. header:客戶端資訊(user agent)、編碼格式(accpet language、accept encoding)、請求長度(content length)、請求內容型別(content type)、請求時間(date)、連結型別(connection)、cookie
  3. body

response

  1. firstline :version number status message
  2. header:伺服器資訊(server)、編碼格式(vary)、內容型別(content type)、內容長度(content length)、快取控制(cache control 、expired、last modified)、請求日期(date)

與tcp keep alive的區別

http keep alive是為了讓tcp連結保持連結,醬紫不用每次都建立tcp連結花費時間
tcp keep alive是為了保證請求的一方不盲目等待,當未傳輸資料超過了keep alive time之後,請求方會發送幀探測對方時候還健在(有可能因為關機、崩潰、主機不可達原因使資料傳輸不了),如果不在則斷開連結,節省資源
簡單說就是http 是為了守護tcp,而tcp是為了守護程序協作
http://blog.csdn.net/lys86_1205/article/details/21234867

實現兩個人之間的即時通訊的架構?XMPP的架構是怎樣 ,有沒有其他更好的選擇

XMPP是一個成熟的即時通訊協議,但是太過於冗餘,在iOS可以通過APNS+Sever+Client實現一種簡單的即時通訊方案
1. 遠端推送,在application:didReceiveRemoteNotification:函式中監聽推送訊息
2. 如果是私信且應用在後臺或未啟動,直接啟動應用,載入對話視窗
3. 如果私信在前臺,直接重新整理對話列表,併發送一個Notification通知對話視窗更新
4. 簡潔明瞭~

設計一個框架,能夠自動清除網頁瀏覽載入的圖片資源,使得記憶體不會爆

相關推薦

[面試]自己總結()

海量資料查詢top k,演算法有什麼極端情況? 利用hash將大檔案轉換成為N個小檔案 對小檔案進行hash_set(key, count)統計 對小檔案的count排序,取出前K個key 對所有小檔案的top K進行總排序,得出最終top k 極端情況是

[面試]自己總結(二)

如何做適配 CocoaPod是什麼 64位與32位如何相容 C++與objective如何混編 對記憶體管理理解 單詞輸出 連結串列深淺拷貝(迴圈連結串列) C++深淺拷貝 海量資料 求top k 用了哪些第

畢業後就是程式設計師——我的阿里、金山、中華、騰訊、360、面試總結

接著上篇,這篇側重於具體的筆試、面試的問題,至於是哪個公司的就不去追究了,但一定是經常問到的,而且我嵌入式系統工程師和移動開發工程師都參與了,問題要區別看待,那麼自然就少了很多對C++問題的考察。筆試    有一個教訓是,題目讓你程式設計實現的,不要羅列一大堆思想方法,程式

面試總結(2014.12.31)

先po一張面試地點的圖 投簡歷到網易是很久之前的事了,在某一段時間內,一直關注投遞反饋,一直沒資訊,原以為沒戲了。但是驚喜總在意料之外降臨的。 收到面試通知後,還是認認真真的對待,雖然我對面試結果

面試總結

之前投過了網易內推,筆試過了,但是一直沒通知我面試。我當時想著可能沒戲了吧,畢竟筆試成績不是特別高。今天突然接到網易說要面試的電話,感覺還是很意外的。當然也沒怎麼準備,想到什麼就說什麼了。 1、講講專

畢業後就是程式設計師——我的阿里、金山、中華、騰訊、360、面試總結(一)

 再開始我的部落格之旅。東奔西跑的忙了一個多月,找工作的事算是告一段落;這段時間有興奮,有失落,有迷惘,也有開心,是一個讓自己得到鍛鍊,得到提升的好機會,是一段難忘的時光,記錄下留作紀念,也希望能給同樣要走這一段路的人一點提醒,免得像我一樣,當碰得頭破血流之時才不得不去承認

面試之對於一個整數X,定義操作rev(X)為將X按數位翻轉過來,並且去除掉前導0

對於一個整數X,定義操作rev(X)為將X按數位翻轉過來,並且去除掉前導0。例如: 如果 X = 123,則rev(X) = 321; 如果 X = 100,則rev(X) = 1.現在給出整數x和y

2018 6月底阿里、面試經歷簡單回憶

面試整理 之前公司快倒閉了遣散人員了,所以本來是打算給以前的同事整理的,現在發出來 阿里 去年面的 一面(電面) 看了app 主要問功能的具體實現,有沒有其他更好的思路 1 arc什麼時候起作用? 2 weak的底層實現,從物件alloc開始,不是我們平時講講has

面試彙總

專案經歷 第一步:先介紹為什麼做這個專案,目的是什麼?給誰用?解決了使用者什麼問題?行業背景是什麼? 第二步:有哪些模組?主要的業務流程? 第三步:用到哪些技術? 第四步:你負責的那一部分的流程、技術? 注意:最多詳細的介紹3個專案,每介紹一個涉及的技

面試(C++基礎)

一、strcpy函式的編寫?(memcpy函式的編寫) 1)函式原型:extern char *strcpy(char *dest,const char *src); 功能:將src所指由NULL結束的字串複製到dest所指的陣列中。位於string.h標頭檔案裡。 注意:

秋招面試經驗(百度+華為+京東+美圖+51+頭條+招銀科技+美團+騰訊+阿里+面試經驗)&部分建議 (研發崗:java研發,大資料研發,研發,雲端計算研發)

        18年9月底結束秋招, 本來說是要寫秋招經驗的。 結果被我拖到了現在,  今天是我在某BAT之一實習的倒數第二天,馬上就要回去做畢設了,正在總結,正好得空。         本人某工科985碩,8月底參加秋招,9月底結束秋招, 之所以那麼遲秋招只是因為當時在旅

在騰訊、頭條、面試中,“刻意練習”才是王道!

2018年8月19號投了PM崗位,20號小姐姐給我打電話,說已通過簡歷篩選和綜合考量,約個時間進行下一步面試。 在接到網易電話的前一天,收到了騰訊、今日頭條的面試邀請郵件。 說明:因為現居廣州,所以都是遠端視訊面試。 騰訊: 騰訊面試的過程很尷尬,我沒說多少,面試官卻

面試

三月份有幸收到網易杭州研究院的面試邀請,後來也如願以償的進入了網易研究院進行某產品的前端開發,當然目前還處於試用階段,自己也會在半年試用期內好好努力,好好珍惜這份機會,這次就來寫一寫面試的經歷來分享給大家,這也算是一次還願吧...^_^ 原本和HR預約的面試時間是下午2點,可

面試一面【遊戲測試工程師】

1、自我介紹 2、多型 3、string變數可變不?為什麼? 4、 等價類和邊界值分析舉例(上次栽在等價類,這次栽在邊界值分析,我要滾回去看基礎....) 5、堆和棧?應用場景 6、drop刪除表。delete刪除表中的資料 7、寫SQL語句,分數表,姓名,分數,

2016面試測試崗實習生面經

過了十分鐘樓豬被通知參加二面,心裡激動了一下下!二面面試官是一個年輕的歐巴,所以樓豬比較放鬆,打了招呼後坐下自我介紹,他沒有問一面問過的問題,因為電腦上會顯示一面面試官問過我什麼,所以他直入主題,直接問我關於軟體測試的問題。。。首先讓我給微博話題功能設計測試用例,樓豬答得還不錯,他貌似比較滿意,之後問我有沒有

2016面試

8月2號經過網易內推筆試之後,有幸得到面試通知,於8月12號下午4點至網易C樓1F面試…… 基本過程 本人於下午3:40左右到網易面試大廳,發現等候的人群挺多,後來詢問得知,今天面

今天去面試

呵呵,準備了一個星期,終於去了網易面試了。 在應聘WEB開發的人不多,同樣能過面談和筆試的人更不多。 一起筆試的10個人,刷出了一個我。這就是第一輪筆試的結果。 第二輪刷出來了兩個。 等待下午才有機會進行專業面試,進去後被三個高手一起盤問,足足問了半個鐘頭,最後:嗯,

面試問題

2015.8.6 網易 1.在網易幾個月了1 2.介紹這個期間做過的比較複雜的專案 haitao ms cpm 3.如何實現多個tag切換到不同的頁面(這些頁面可能各不相同)、且整個頁面重新整理仍能留在使用者選擇的當前頁面 放在 4.前端用什麼框架;對這兩個框架有多少了解、

面試小結

ES叢集master選舉(當前網路內節點按id字典排序,選舉0節點,即第一個節點,超過mininum主節點數的節點當選),為什麼要有這個minimum主節點數(其實就是用來防止腦裂),腦裂怎麼產生(可能由於網路延遲,節點預設ping超時為5s;也可能由於節點壓力過大,導致ping失去響應;節點故障宕機,pin

java開發面試:一面+二面+面以及 面試經驗總結

網易java開發面試:一面+二面+三面!以及面試經驗總結! 網易一面: 自我介紹 微服務的架構介紹,微服務與SOA的區別 分散式事務處理 spring特性,ioc,aop原理及實現