没有难度,但是请注意输出格式!
#include <iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{
int m, n, i, b;
vector<int>a;
cin >> m >> n;
for (i = 0; i<m; i++)
{
cin >> b;
a.push_back(b);
}
sort(a.begin(), a.end());
for (i = 0; i<n - 1; i++)
cout << a[i] << ' ';
cout << a[i] << endl;
}
结论:这道题时间复杂度最小的解法是维护一个含有k个元素的大根堆,遇到比堆顶小的元素才重新调整!!!