make_heap topk 问题

来源:互联网 发布:易燃易爆炸 知乎 编辑:程序博客网 时间:2024/05/16 19:47
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;        }    };

0 0
原创粉丝点击