如何有效设计哈希表来存储大字序列?

发布于 2024-12-29 06:50:25 字数 48 浏览 1 评论 0原文

我想从一个大的单词序列中找到前 K 个最常见的单词。请帮我为此设计一个有效的哈希表

I want to find top K frequent words from a big word sequence. Please help me to design a efficient hash table for this

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

别再吹冷风 2025-01-05 06:50:25

用空格或任何分隔符将字符串拆分为字符串数组,然后将其放入 HashMultiset 中

,然后您可以简单地获取每个单词的计数。

Split your string into an array of strings by spaces or whatever delimiters and then put it into a HashMultiset

then you can simply get your counts for each word.

沒落の蓅哖 2025-01-05 06:50:25

我将在这里使用大小为 k 的最小堆而不是哈希表。只需将单词及其各自的长度添加到堆中 - 一旦堆中有 k+1 个项目,请删除最小项目并重新堆化。总体工作量将为 O(n*log(k)),并且您将需要 O(k) 额外空间(以维护堆)。

I would use a min heap of size k here instead of a hash table. Just add words to the heap with their respective length - once you have k+1 items in the heap, remove the minimum item and reheapify. Overall effort will be O(n*log(k)) and you will need O(k) extra space (to maintain the heap).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文