#include<iostream>
#include<set>
#include<vector>
#include<iomanip>
#include <functional>//greater,less的模板
using namespace std;
void MinK(const vector<int> v,int k, multiset<int, greater<int>> &IntSet) {
int i = 0;
multiset<int, greater<int>>::iterator it;
while (i < v.size()) {
if (i < k){
IntSet.insert(v[i]);
it = IntSet.begin();
}
else if (v[i] < *it) {
IntSet.erase(it);
IntSet.insert(v[i]);
it = IntSet.begin();
}
i++;
}
}
int main(){
multiset<int, greater<int>>IntSet;
vector<int> v;
v.push_back(2);
v.push_back(8);
v.push_back(3);
v.push_back(4);
v.push_back(5);
v.push_back(7);
v.push_back(3);
v.push_back(5);
MinK(v,4,IntSet);
for (multiset<int, greater<int>>::iterator it = IntSet.begin(); it != IntSet.end(); it++) cout << *it << setw(2);
return 0;
}
剑指offer41
最新推荐文章于 2022-05-12 11:18:16 发布