解算法題,送offer

兩件事情。前端

第一件,近期算法類文章挺受歡迎的。

所以,決定後續多寫這個專題。
畫外音:不少校招生留言,說這個專題對拿校招offer頗有幫助。面試

第二件,快狗打車2019校園招聘啓動。

畫外音:據說,這個公司的技術負責人,是「架構師之路」的小編。算法

招前端,後端,測試,移動等多個崗位。後端

今天,找出一道本身13年出的校招筆試題,對校招崗位感興趣的朋友,評論給我解題思路,我直接發offer。微信

題目:求微信羣的覆蓋

微信有不少羣,現進行以下抽象:
(1) 每一個微信羣由一個惟一的gid標識;
(2) 微信羣內每一個用戶由一個惟一的uid標識;
(3) 一個用戶能夠加入多個羣;
(4) 羣能夠抽象成一個由不重複uid組成的集合,例如:
g1{u1, u2, u3}
g2{u1, u4, u5}
能夠看到,用戶u1加入了g1與g2兩個羣。
畫外音,注意:
gid和uid都是uint64;
集合內沒有重複元素;架構

假設微信有M個羣(M爲億級別),每一個羣內平均有N個用戶(N爲十級別).ide

如今要進行以下操做:
(1) 若是兩個微信羣中有相同的用戶,則將兩個微信羣合併,並生成一個新微信羣;
例如,上面的g1和g2就會合併成新的羣:
g3{u1, u2, u3, u4, u5};
畫外音:集合g1中包含u1,集合g2中包含u1,合併後的微信羣g3也只包含一個u1。
(2) 不斷的進行上述操做,直到剩下全部的微信羣都不含相同的用戶爲止;
將上述操做稱:求羣的覆蓋。測試

設計算法,求羣的覆蓋,並說明算法時間與空間複雜度。ui

有興趣一塊兒共事的校招生,評論解題思路,直接拿offer。固然,這篇文章不是挖坑,後續撰文解析答案。設計

算法,其實仍是挺有意思的。
畫外音:若是有學弟學妹在找工做,能夠把文章轉給ta們。
解算法題,送offer
架構師之路-分享可落地的技術文章

TopK,數1,斐波拉契數列:
《拜託,面試別再問我TopK了!》
《拜託,面試別再問我數1了!》
《拜託,面試別再問我斐波那契數列了!》

算法時間複雜度:
《拜託,面試別再問我時間複雜度了!》

複雜度爲O(n)的排序算法:
《拜託,面試別再問我基數排序了!》
《拜託,面試別再問我計數排序了!》
《拜託,面試別再問我桶排序了!》

奇特排序算法:《世界上最漂亮的排序算法!》

相關文章
相關標籤/搜索