Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- vector<int> smallestK(vector<int>& a, int k)
- {
- vector<int> maxHeap;
- for(int i=0;i<a.size();i++){
- if(maxHeap.size()<k){
- maxHeap.push_back(a[i]);
- push_heap(maxHeap.begin(), maxHeap.end(), std::less<int>());
- }
- else if(a[i] < maxHeap[0]){
- pop_heap(maxHeap.begin(), maxHeap.end(), std::less<int>());
- maxHeap.pop_back();
- maxHeap.push_back(a[i]);
- push_heap(maxHeap.begin(), maxHeap.end(), std::less<int>());
- }
- }
- return maxHeap;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement