精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

暴力法求解“微信群覆蓋”?

開發(fā) 開發(fā)工具 前端
假設(shè)微信有M個(gè)群(M為億級(jí)別),每個(gè)群內(nèi)平均有N個(gè)用戶(N為十級(jí)別),下面,我們?cè)O(shè)計(jì)算法,求群的覆蓋,并說明算法時(shí)間與空間復(fù)雜度。

題目:求微信群覆蓋

微信有很多群,現(xiàn)進(jìn)行如下抽象:

  • 每個(gè)微信群由一個(gè)***的gid標(biāo)識(shí);
  • 微信群內(nèi)每個(gè)用戶由一個(gè)***的uid標(biāo)識(shí);
  • 一個(gè)用戶可以加入多個(gè)群;
  • 群可以抽象成一個(gè)由不重復(fù)uid組成的集合,例如:
  1. g1{u1, u2, u3} 
  2. g2{u1, u4, u5} 

可以看到,用戶u1加入了g1與g2兩個(gè)群。

[[249955]]

畫外音,注意:

  • gid和uid都是uint64;
  • 集合內(nèi)沒有重復(fù)元素;

假設(shè)微信有M個(gè)群(M為億級(jí)別),每個(gè)群內(nèi)平均有N個(gè)用戶(N為十級(jí)別).

現(xiàn)在要進(jìn)行如下操作:

(1) 如果兩個(gè)微信群中有相同的用戶,則將兩個(gè)微信群合并,并生成一個(gè)新微信群;

例如,上面的g1和g2就會(huì)合并成新的群:

  1. g3{u1, u2, u3, u4, u5}; 

畫外音:集合g1中包含u1,集合g2中包含u1,合并后的微信群g3也只包含一個(gè)u1。

(2) 不斷的進(jìn)行上述操作,直到剩下所有的微信群都不含相同的用戶為止;

將上述操作稱:求群的覆蓋。

設(shè)計(jì)算法,求群的覆蓋,并說明算法時(shí)間與空間復(fù)雜度。

畫外音:58同城2013年校招筆試題。

對(duì)于一個(gè)復(fù)雜的問題,思路肯定是“先解決,再優(yōu)化”,大部分人不是神,很難一步到位。先用一種比較“笨”的方法解決,再看“笨方法”有什么痛點(diǎn),優(yōu)化各個(gè)痛點(diǎn),不斷升級(jí)方案。

拿到這個(gè)問題,很容易想到的思路是:

  • 先初始化M個(gè)集合,用集合來表示微信群gid與用戶uid的關(guān)系;
  • 找到哪兩個(gè)(哪些)集合需要合并;
  • 接著,進(jìn)行集合的合并;
  • 迭代步驟二和步驟三,直至所有集合都沒有相同元素,算法結(jié)束;

***步,如何初始化集合?

set這種數(shù)據(jù)結(jié)構(gòu),大家用得很多,來表示集合:

  • 新建M個(gè)set來表示M個(gè)微信群gid
  • 每個(gè)set插入N個(gè)元素來表示微信群中的用戶uid

set有兩種最常見的實(shí)現(xiàn)方式,一種是樹型set,一種是哈希型set。

假設(shè)有集合:

  1. s={7, 2, 0, 14, 4, 12} 

樹型set的實(shí)現(xiàn)如下:

其特點(diǎn)是:

  • 插入和查找的平均時(shí)間復(fù)雜度是O(lg(n))
  • 能實(shí)現(xiàn)有序查找
  • 省空間

哈希型set實(shí)現(xiàn)如下:

其特點(diǎn)是:

  • 插入和查找的平均時(shí)間復(fù)雜度是O(1)
  • 不能實(shí)現(xiàn)有序查找

畫外音:求群覆蓋,哈希型實(shí)現(xiàn)的初始化更快,復(fù)雜度是O(M*N)。

第二步,如何判斷兩個(gè)(多個(gè))集合要不要合并?

集合對(duì)set(i)和set(j),判斷里面有沒有重復(fù)元素,如果有,就需要合并,判重的偽代碼是:

  1. // 對(duì)set(i)和set(j)進(jìn)行元素判斷并合并 
  2. (1)    foreach (element in set(i)) 
  3. (2)    if (element in set(j)) 
  4.          merge(set(i), set(j)); 

***行(1)遍歷***個(gè)集合set(i)中的所有元素element;

畫外音:這一步的時(shí)間復(fù)雜度是O(N)。

第二行(2)判斷element是否在第二個(gè)集合set(j)中;

畫外音:如果使用哈希型set,第二行(2)的平均時(shí)間復(fù)雜度是O(1)。

這一步的時(shí)間復(fù)雜度至少是O(N)*O(1)=O(N)。

第三步,如何合并集合?

集合對(duì)set(i)和set(j)如果需要合并,只要把一個(gè)集合中的元素插入到另一個(gè)集合中即可:

  1. // 對(duì)set(i)和set(j)進(jìn)行集合合并 
  2. merge(set(i), set(j)){ 
  3. (1)    foreach (element in set(i)) 
  4. (2)    set(j).insert(element); 

***行(1)遍歷***個(gè)集合set(i)中的所有元素element;

畫外音:這一步的時(shí)間復(fù)雜度是O(N)。

第二行(2)把element插入到集合set(j)中;

畫外音:如果使用哈希型set,第二行(2)的平均時(shí)間復(fù)雜度是O(1)。

這一步的時(shí)間復(fù)雜度至少是O(N)*O(1)=O(N)。

第四步:迭代第二步與第三步,直至結(jié)束

對(duì)于M個(gè)集合,暴力針對(duì)所有集合對(duì),進(jìn)行重復(fù)元素判斷并合并,用兩個(gè)for循環(huán)可以暴力解決:

  1. (1)for(i = 1 to M) 
  2. (2)    for(ji+1 to M) 
  3.          //對(duì)set(i)和set(j)進(jìn)行元素判斷并合并 
  4.          foreach (element in set(i)) 
  5.          if (element in set(j)) 
  6.          merge(set(i), set(j)); 

遞歸調(diào)用,兩個(gè)for循環(huán),復(fù)雜度是O(M*M)。

綜上,如果這么解決群覆蓋的問題,時(shí)間復(fù)雜度至少是:

  1. O(M*N) // 集合初始化的過程 
  2. O(M*M) // 兩重for循環(huán)遞歸 
  3. O(N) // 判重 
  4. O(N) // 合并 

畫外音:實(shí)際復(fù)雜度要高于這個(gè),隨著集合的合并,集合元素會(huì)越來越多,判重和合并的成本會(huì)越來越高。

基于“先解決,再優(yōu)化”的思想,很多優(yōu)化方向的問題,自然而然的從腦中蹦出:

(1) 能不能快速通過元素定位集合?

畫外音:

  • 通過集合查元素,哈希型set時(shí)間復(fù)雜度是O(1);
  • 通過元素查集合(句柄),如何來實(shí)現(xiàn)呢?

(2) 能不能快速進(jìn)行集合合并?

(3) 能不能一次合并多個(gè)集合?

經(jīng)典數(shù)據(jù)結(jié)構(gòu),分離集合(disjoint set),它有三類操作:

  • Make-set(a):生成一個(gè)只有一個(gè)元素a的集合;
  • Union(X, Y):合并兩個(gè)集合X和Y;
  • Find-set(a):查找元素a所在集合,即通過元素找集合;

特別適合用來解決這類集合合并與查找的問題,又稱為并查集。

如何利用并查集來解決求“微信群覆蓋”問題,是后文將要介紹的內(nèi)容。

畫外音:先介紹“并查集”這一種方案,后續(xù)再介紹其他方案。

知道并查集的思路和原理,比知道什么是并查集更重要。

算法,其實(shí)還是挺有意思的。

【本文為51CTO專欄作者“58沈劍”原創(chuàng)稿件,轉(zhuǎn)載請(qǐng)聯(lián)系原作者】

戳這里,看該作者更多好文

責(zé)任編輯:趙寧寧 來源: 51CTO專欄
相關(guān)推薦

2021-12-09 15:02:21

算法微信群覆蓋開發(fā)

2021-04-20 08:30:23

微信微信輸入法張小龍

2017-03-27 13:20:36

2021-04-26 05:39:03

微信輸入法騰訊

2013-08-08 10:13:25

微信

2019-10-14 11:26:05

開源技術(shù) 軟件

2025-04-17 09:00:00

架構(gòu)聊消息微信

2019-12-16 17:25:04

Python微信群同步直播

2015-10-19 15:20:14

有魚

2020-03-17 15:01:19

微信醫(yī)保電子憑證

2021-04-27 13:43:42

微信iOS輸入法

2019-12-20 09:22:12

垃圾分類微信城市服務(wù)

2019-11-26 10:08:00

微信醫(yī)院掛號(hào)

2020-01-08 06:40:12

微信微信群移動(dòng)應(yīng)用

2020-02-05 13:15:03

微信移動(dòng)應(yīng)用

2020-07-27 15:06:14

微信張小龍焦慮

2017-01-11 17:01:20

飛魚星

2013-10-24 11:00:30

馬云微信

2021-09-30 05:39:05

微信Android 8.0騰訊

2015-02-13 10:20:15

微信
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

国产**成人网毛片九色| 日韩88av| 色香色香欲天天天影视综合网| 欧美精品七区| 国产美女免费视频| 国产亚洲精品bv在线观看| 中文字幕免费国产精品| 精人妻一区二区三区| 日韩精品99| 亚洲在线一区二区三区| 欧洲一区二区日韩在线视频观看免费 | 国产精品色眯眯| av免费观看久久| 久久久久久无码午夜精品直播| 欧美激情视频一区二区三区免费| 亚洲免费中文字幕| 欧洲熟妇的性久久久久久| 日本精品网站| 精品露脸国产偷人在视频| 亚洲欧洲一区二区福利| 无码国产精品高潮久久99| 极品少妇xxxx精品少妇偷拍| 51午夜精品视频| 免费无遮挡无码永久在线观看视频| 精品九九在线| 亚洲欧美日韩天堂| 性囗交免费视频观看| 电影91久久久| 欧美三级视频在线| 免费日韩视频在线观看| 国产美女一区视频| 亚洲精品亚洲人成人网| 一区二区三区四区不卡| 国产三级在线| 久久久99免费| 久久久亚洲综合网站| 粉嫩小泬无遮挡久久久久久| 国产一区在线看| 国产精自产拍久久久久久| 最新中文字幕一区| 国产精品外国| 欧美在线亚洲在线| 黄色激情视频在线观看| 精品二区久久| 久久久久久尹人网香蕉| 青娱乐国产精品| 欧美日韩天堂| 欧美福利小视频| 中文字幕在线观看成人| 女生裸体视频一区二区三区| 久久精品最新地址| 可以直接看的黄色网址| 亚洲先锋影音| 欧美国产日韩二区| 国产一级二级三级| 很黄很黄激情成人| 午夜免费在线观看精品视频| 亚欧视频在线观看| 国产精品久久久久毛片大屁完整版 | 国产传媒在线看| 欧美在线电影| 日韩在线视频观看| 国产成人av免费在线观看| 天天影视欧美综合在线观看| 久久在线精品视频| 精品无码人妻一区二区三| 最新成人av网站| 欧美夜福利tv在线| 一级一片免费看| 美女网站在线免费欧美精品| 成人h片在线播放免费网站| aaaa一级片| 成人国产精品免费观看动漫| 欧美精品欧美精品系列c| 超碰免费在线| 一区二区三区在线影院| 你懂的av在线| 久久久成人av毛片免费观看| 欧美精品丝袜中出| 中文字幕第六页| 九九热播视频在线精品6| 亚洲欧美成人网| av最新在线观看| 狠狠噜噜久久| 国产成人福利网站| 国产精品色综合| 9久草视频在线视频精品| 美女黄毛**国产精品啪啪| 大胆av不用播放器在线播放 | 国产欧美自拍| 精品国产精品一区二区夜夜嗨| 97人妻天天摸天天爽天天| 日韩中文字幕高清在线观看| 久久久久久成人| 免费黄色一级大片| 成人性生交大片| 先锋在线资源一区二区三区| 最新日本在线观看| 日本黄色一区二区| 国产精品亚洲一区二区无码| 欧美伦理在线视频| 久久久人成影片一区二区三区观看| 一级片免费在线播放| 国产成人在线视频网站| 欧美日韩一区二区三区在线视频| 91精品久久久| 欧美性色黄大片| 制服丝袜第一页在线观看| 久久亚洲精品中文字幕蜜潮电影| 午夜精品久久久久久久男人的天堂 | 免费在线观看黄视频| 日韩高清在线观看| 精品午夜一区二区| av中文字幕在线观看| 色999日韩国产欧美一区二区| 又大又长粗又爽又黄少妇视频| 精品国产一区一区二区三亚瑟| 91极品视频在线| 国产夫妻自拍av| 国产精品久久久久影视| 久久成人免费观看| 亚洲经典视频| 美女精品视频一区| 最新黄色网址在线观看| 91麻豆高清视频| 国产妇女馒头高清泬20p多| 亚洲午夜剧场| 精品国产一区av| youjizz在线视频| eeuss国产一区二区三区| av动漫在线播放| 粉嫩一区二区三区在线观看| 中文字幕不卡在线视频极品| 久久精品国产成人av| 不卡av在线网| 性一交一乱一伧国产女士spa| 国产一区二区av在线| 日韩在线观看你懂的| 中文字幕网址在线| 亚洲国产激情av| 91最新在线观看| 欧洲三级视频| 国产精品女主播| 超碰在线影院| 欧美日韩一级二级三级| 国产精品夜夜夜爽阿娇| 免费高清在线视频一区·| 亚洲 国产 欧美一区| 天堂久久午夜av| 中文字幕日韩av电影| 亚洲 小说区 图片区| 国产免费成人在线视频| 最近中文字幕一区二区| 日韩国产欧美| 亚洲综合在线小说| 女囚岛在线观看| 亚洲国产精品成人va在线观看| 日韩欧美三级视频| 91网页版在线| 国产福利影院在线观看| 日韩在线观看| 成人动漫视频在线观看免费| 波多野结衣乳巨码无在线观看| 亚洲第一区第一页| 69国产精品视频免费观看| 国产日韩精品一区二区三区在线| 波多结衣在线观看| 欧美日本不卡高清| 久久综合九色综合网站| 欧洲一级精品| 久久在线精品视频| 亚洲av成人无码久久精品老人 | 中文字幕欧美激情| 五月激情婷婷在线| 欧美三区视频| 久久亚洲精品欧美| 男人天堂久久| 欧美黑人xxx| 国产香蕉视频在线看| 欧美精品久久99| 国产又大又黑又粗免费视频| 国产亚洲精品资源在线26u| 爱豆国产剧免费观看大全剧苏畅| 欧美午夜国产| 亚洲成人av动漫| 欧洲大片精品免费永久看nba| 538国产精品视频一区二区| 免费av网站在线观看| 精品国产露脸精彩对白| 亚洲高清视频免费观看| 亚洲最大成人网4388xx| 国产三级av在线播放| 国产一区二区精品在线观看| 久久久999视频| 一区二区蜜桃| 日韩av电影免费播放| 日韩激情综合| 国产成人aa精品一区在线播放| 在线中文字幕视频观看| 亚洲石原莉奈一区二区在线观看| av在线亚洲天堂| 在线观看av不卡| 日韩av黄色片| 18欧美乱大交hd1984| 强伦人妻一区二区三区| 精品一区二区在线观看| 免费在线观看的毛片| 伊人久久亚洲美女图片| 在线成人性视频| 亚洲宅男网av| 国产精品麻豆免费版| 四虎地址8848精品| 国产成人一区二区三区电影| 国产第一页在线视频| 日韩最新免费不卡| 欧美18xxxxx| 亚洲国产精品va| 性少妇videosexfreexxx片| 欧美亚洲综合另类| 黄瓜视频在线免费观看| 五月天激情综合| 国产在线综合网| 亚洲猫色日本管| 蜜桃av.com| 亚洲国产精品av| 91视频免费在观看| 久久久综合九色合综国产精品| 扒开伸进免费视频| 大胆亚洲人体视频| 巨乳女教师的诱惑| 国产精品一区二区三区99| 一本色道久久亚洲综合精品蜜桃| 视频在线在亚洲| 蜜臀av午夜一区二区三区| 亚洲人妖在线| 97国产在线播放| 99成人在线| 日韩avxxx| 国产精品久久久亚洲一区| 国产人妻777人伦精品hd| 一区精品久久| 99精品在线免费视频| 日韩亚洲精品在线| 日本在线xxx| 亚洲一区中文| 精品一区二区中文字幕| 免费国产自线拍一欧美视频| 国产高清精品在线观看| 久久精品人人| 激情 小说 亚洲 图片: 伦| 蜜乳av一区二区三区| 欧美一级xxxx| 国产真实精品久久二三区| 在线观看中文av| 粉嫩av一区二区三区在线播放| 欧美性生交xxxxx| 26uuu久久综合| 人妻少妇无码精品视频区| 中文字幕巨乱亚洲| 国产大学生自拍| 亚洲第一搞黄网站| 日日夜夜狠狠操| 欧美精品丝袜中出| 亚洲国产www| 亚洲男人天堂2024| 91露出在线| 欧美刺激性大交免费视频| 国产啊啊啊视频在线观看| 亲爱的老师9免费观看全集电视剧| 日韩免费va| 91精品视频在线| 成人盗摄视频| 色涩成人影视在线播放| 国产精品久久久久久久免费观看| www.69av| 玖玖国产精品视频| 亚洲图片 自拍偷拍| 成人久久久精品乱码一区二区三区| 网站免费在线观看| 国产精品天天看| 久热精品在线观看| 日本二三区不卡| 成人高潮片免费视频| 亚洲欧美日本另类| 成人影院在线观看| 欧洲亚洲免费在线| 99久热在线精品视频观看| 国产伦理久久久| 四季av一区二区凹凸精品| 日韩xxxx视频| 捆绑调教一区二区三区| 亚洲国产综合视频| 亚洲欧洲美洲综合色网| 草久久免费视频| 91精品午夜视频| 国产免费永久在线观看| 欧美多人乱p欧美4p久久| 成人视屏在线观看| 国产伦精品一区二区三区免| 久久网站免费观看| 日韩人妻精品无码一区二区三区| 国内精品久久久久影院薰衣草| 91精品人妻一区二区| 亚洲精品亚洲人成人网在线播放| 国产男人搡女人免费视频| 亚洲精品mp4| 午夜伦理大片视频在线观看| 国产精品极品美女在线观看免费| 成人春色在线观看免费网站| 色香蕉在线观看| 日韩专区中文字幕一区二区| 中文字幕第九页| 亚洲欧美日韩国产中文在线| 久久这里只有精品9| 亚洲护士老师的毛茸茸最新章节| 成人av福利| 国产精品综合久久久| 国产亚洲一区| av片中文字幕| 99久久久免费精品国产一区二区| 青青草手机在线观看| 欧美另类高清zo欧美| 成人欧美一区| 日韩美女中文字幕| 美日韩中文字幕| 欧美v在线观看| 91在线观看免费视频| 国产在线观看99| 欧美精品一区二区三区在线| 青草av在线| 亚洲影院高清在线| 久久久久久影院| 色www免费视频| 中文字幕一区二区三区乱码在线| 欧美一区免费看| 亚洲天堂成人在线| 色豆豆成人网| 视频在线99re| 九九在线精品视频| 午夜精品久久久久99蜜桃最新版| 欧美精品色一区二区三区| 日本三级在线视频| 国产女同一区二区| 天天做天天爱天天爽综合网| 9l视频白拍9色9l视频| 国产精品人成在线观看免费| 中文字幕精品无码亚| 色噜噜狠狠狠综合曰曰曰88av | 成人h在线播放| 亚洲精品系列| 中文字幕av网址| 色欧美乱欧美15图片| 高清毛片在线看| 国产在线精品一区免费香蕉| 国产精品伦理久久久久久| 天天操精品视频| 亚洲午夜影视影院在线观看| 色噜噜一区二区三区| 欧美亚洲成人精品| 国产最新精品| 欧美一级小视频| 亚洲精品国产成人久久av盗摄| 精品毛片在线观看| 5566成人精品视频免费| 久久不见久久见免费视频7| 国产福利影院在线观看| 亚洲美女视频在线观看| 人人妻人人玩人人澡人人爽| 日本电影亚洲天堂| 日韩精品四区| 日本在线不卡一区二区| 日韩欧美国产黄色| 欧美极品另类| 国产精品伊人日日| 久色成人在线| 久久久久97国产| 精品亚洲aⅴ在线观看| 黄页免费欧美| 欧美乱做爰xxxⅹ久久久| 久久婷婷久久一区二区三区| 中文字幕在线观看高清| 欧美精品电影在线| 国产成人精品三级高清久久91| 污污的视频免费观看| 欧美日韩激情小视频| 日本暖暖在线视频| 精品一区二区国产| 激情六月婷婷综合| 在线能看的av| 欧美精品在线第一页| 国产欧美日韩在线一区二区 | 久久久777精品电影网影网| 国产精品久久久久久久免费看| 性视频1819p久久| 66久久国产| 少妇人妻好深好紧精品无码| 日韩三级.com| 国产精品久久久久久久久久齐齐| 17c丨国产丨精品视频| 国产精品网站在线|