class Solution {
public:
vector<int> topKFrequent(vector<int>& nums, int k)
{
vector<int> ans;
unordered_map<int,int> table;
vector<pair<int,int>> temp;
for(int i=0;i<nums.size();i++)
{
if(table.find(nums[i])!=table.end()) //has found
table[nums[i]]++;
else
table[nums[i]]=1;
} //establish hash table
for(unordered_map<int,int>:: iterator it=table.begin();it!=table.end();it++)
{
temp.push_back(make_pair(it->first,it->second));
}
sort(temp.begin(),temp.end(),flag);
for(int i=0;i<k;i++)
ans.push_back(temp[i].first);
return ans;
}
static bool flag(const pair<int,int> a,const pair<int,int> b)
{
if(a.second!=b.second)
return a.second>b.second;
if(a.first!=b.first)
return a.first<b.first;
}
};
347. Top K Frequent Elements
最新推荐文章于 2020-12-22 08:50:39 发布