我正在嘗試使用 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.我的想法是使用哈希圖來記住頻率和樹集作為緩沖區。我的實現通過了大部分情況,除了一個:TopK(10)add("aw")add("fb")add("fb")topk()答案應該是 [fb,aw] 但現在是 [fb,aw, fb] 但是,我的代碼通過了測試用例,例如: TopK(10) add("iiiiii") add("fb") add("fb") topk()和TopK(10)add("fb")add("fb")topk()我不知道出了什么問題,所以我在調用比較器時打印了一些值。它給了我這個: aw aw11111111fb aw33333333fb aw33333333fb aw222222222fb aw222222222這意味著,第二個“fb”與“aw”進行了兩次比較,比較器就完成了。我花了幾個小時來調試,到目前為止我什么也沒發現。
實時數據流中查找前k個頻繁詞
慕工程0101907
2021-07-01 13:27:27