描述
給乙個單詞列表,求出這個列表中出現頻次最高的k個單詞。
你需要按照單詞的詞頻排序後輸出,越高頻的詞排在越前面。如果兩個單詞出現的次數相同,則詞典序小的排在前面。
樣例 給出單詞列表:
[
"yes", "lint", "code",
"yes", "code", "baby",
"you", "baby", "chrome",
"safari", "lint", "code",
"body", "lint", "code"
]
如果 k = 3, 返回 [「code」, 「lint」, 「baby」]。
如果 k = 4, 返回 [「code」, 「lint」, 「baby」, 「yes」]。
挑戰 用 o(n log k)的時間和 o(n) 的額外空間完成。
思路 構建堆,元素
#ifndef c471_h
#define c471_h
#include
#include
#include
#include
#include
#include
using
namespace
std;
//出現次數越多越靠前,出現次數相同按字典序
struct cmp
else
return a.second>b.second;
}};class solution
//求堆頂的前k個值
for (int i = 0; i < k; ++i)
return res;
}};#endif
LintCode 471 最高頻的K個單詞
題目 給乙個單詞列表,求出這個列表中出現頻次最高的k個單詞。思路 本題並不難,主要需要重新實現乙個hashmap根據key值和value值排序的comparator介面即可。但hashmap並沒有比較器介面,所以需要把hashmap的entryset匯入乙個list中,呼叫collections.s...
前k個高頻單詞
題目 給一非空的單詞列表,返回前 k 個出現次數最多的單詞。返回的答案應該按單詞出現頻率由高到低排序。如果不同的單詞有相同出現頻率,按字母順序排序。示例 1 輸入 i love leetcode i love coding k 2 輸出 i love 解析 i 和 love 為出現次數最多的兩個單詞...
前K個高頻單詞
解題思路 static class mycomparator implements comparator override public intcompare string o1,string o2 o1 o1 o2返回 0 o1 o2返回0 count1 count2公升序排序 count2 co...