我正在嘗試使用 java 樹集解決算法問題。問題如下:Find top k frequent words in realtime data stream.Implement three methods for Topk Class:TopK(k). The constructor.add(word). Add a new word.topk(). Get the current top k frequent words.我的想法是使用哈希圖來記住頻率和樹集作為緩沖區(qū)。我的實(shí)現(xiàn)通過了大部分情況,除了一個(gè):TopK(10)add("aw")add("fb")add("fb")topk()答案應(yīng)該是 [fb,aw] 但現(xiàn)在是 [fb,aw, fb] 但是,我的代碼通過了測(cè)試用例,例如: TopK(10) add("iiiiii") add("fb") add("fb") topk()和TopK(10)add("fb")add("fb")topk()我不知道出了什么問題,所以我在調(diào)用比較器時(shí)打印了一些值。它給了我這個(gè): aw aw11111111fb aw33333333fb aw33333333fb aw222222222fb aw222222222這意味著,第二個(gè)“fb”與“aw”進(jìn)行了兩次比較,比較器就完成了。我花了幾個(gè)小時(shí)來調(diào)試,到目前為止我什么也沒發(fā)現(xiàn)。
實(shí)時(shí)數(shù)據(jù)流中查找前k個(gè)頻繁詞
慕工程0101907
2021-07-01 13:27:27