gpt4 book ai didi

algorithm - 亚马逊面试问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:22:35 24 4
gpt4 key购买 nike

有一个动态变化的大文件。我们不断地往里面加一些词。您将如何跟踪每时每刻的前 10 个热门词?

我在博客中发现了这个问题,但我无法理解答案。答案是:哈希表+最小堆

我明白为什么哈希表而不是最小堆部分,有人可以帮助我吗?

最佳答案

如果它是前 10 个热门词,那么您应该使用 max-heaphash-table

当一个新词被添加到文件中时:

  • 创建一个新元素x,带有x.key=wordx.count=1
  • 添加 x哈希表O(1)
  • 添加 xmax-heapO(lgn).

将现有单词添加到文件时:

  • hash-table 中找到 xO(1)
  • 更新 x.countx.count++

当需要检索前 10 个热门词时:

  • max-heap 中提取 10 次10*O(lgn)=O(10*lgn)=O(lgn)

如您所见,所有需要的操作最多在 O(lgn) 内完成。

关于algorithm - 亚马逊面试问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12133026/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com