class SolutionTopK
{
public:
<span style="color:#ff0000;"> static </span> bool inc(int x,int y)
{
return x>y;
}
vector<int> topK(vector<int>&a,int k)
{
vector<int>v(a.begin(),a.begin()+k);
for(auto e:v)
cout<<e<<endl;
make_heap(v.begin(),v.end(),<span style="color:#ff6666;">inc</span>);
for(auto e:v)
cout<<e<<endl;
for(int i=k;i<a.size();++i){
if(a[i]>v[0]){
pop_heap(v.begin(),v.end(),<span style="color:#ff0000;">inc)</span>;
v.pop_back();
v.push_back(a[i]);
push_heap(v.begin(),v.end(),<span style="color:#ff6600;">inc</span>);
}
}
return v;
}
};
make_heap topk 问题
最新推荐文章于 2020-10-10 16:25:12 发布