生活随笔
收集整理的這篇文章主要介紹了
前K个高频单词
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
思路:和前K個高頻元素那道題目只有構建小頂堆時有一丟丟差別
class mycompare{
public:bool operator()(const pair
<string
,int>& lhs
,const pair
<string
,int>& rhs
){return lhs
.second
>rhs
.second
||(lhs
.second
==rhs
.second
&& lhs
.first
<rhs
.first
);}
};class Solution {
public:vector
<string
> topKFrequent(vector
<string
>& words
, int k
) {if(words
.size()<2) return {words
[0]};unordered_map
<string
,int> map
;for(int ii
=0;ii
<words
.size();ii
++){map
[words
[ii
]]++;}priority_queue
<pair
<string
,int>,vector
<pair
<string
,int>>,mycompare
> pri_que
;for(auto it
=map
.begin();it
!=map
.end();it
++){pri_que
.push(*it
);if(pri_que
.size()>k
) pri_que
.pop();}vector
<string
> res(k
);for(int ii
=k
-1;ii
>=0;ii
--){string s1
=pri_que
.top().first
;res
[ii
]=s1
;pri_que
.pop();}return res
;}
};
總結
以上是生活随笔為你收集整理的前K个高频单词的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。