出现频率最高的K个单词

出现频率最高的K个单词

💡 原文英文,约500词,阅读约需2分钟。
📝

内容提要

给定一个包含N个单词的数组和整数K,返回按频率从高到低排序的K个最常见单词。如果频率相同,则按字典顺序排列。使用哈希映射记录频率,并用最大堆存储单词和频率对,通过自定义比较器确保高频优先,频率相同时按字典序。时间复杂度为O(N log K)。

🎯

关键要点

  • 给定一个包含N个单词的数组和整数K,返回按频率从高到低排序的K个最常见单词。

  • 如果两个单词的频率相同,则按字典顺序排列。

  • 使用哈希映射记录每个单词的频率。

  • 使用最大堆存储单词和频率对,通过自定义比较器确保高频优先。

  • 时间复杂度为O(N log K)。

  • 示例输入1: 6 2,输出: i love。

  • 示例输入2: 8 3,输出: is the blue。

  • 代码中使用unordered_map存储单词频率,使用优先队列维护最大堆。

  • 提取前K个元素以获取K个最常见的单词。

  • 时间复杂度分析包括O(n)和O(n log k)。

➡️

继续阅读