💡
原文英文,约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)。
➡️