A7965.求第 k 小的数
2025-10-21 19:16:17
发布于:江苏
3阅读
0回复
0点赞
你说得对,但是是STL。
#include <algorithm>
#include <iostream>
using namespace std;
#define N 5000005
int n, k;
int a[N];
int main() {
scanf("%d%d", &n, &k);
for (int i=0; i<=n; i++) scanf("%d", a+i);
sort(a, a+n);
printf("%d", a[k]);
return 0;
}
#include <iostream>
#include <set>
using namespace std;
#define N 5000005
int n, k;
multiset<int> a;
int main() {
scanf("%d%d", &n, &k);
int x;
for (int i=0; i<n; i++) {
scanf("%d", &x);
a.insert(x);
}
int i=0;
for (int ai:a) {
if (i == k) {
printf("%d", ai);
return 0;
} if (++i == n) {
printf("%d", ai);
}
}
return 0;
}
#include <functional>
#include <iostream>
#include <queue>
using namespace std;
#define N 5000005
int n, k;
priority_queue<int, vector<int>, greater<int>> a;
int main() {
scanf("%d%d", &n, &k);
int x;
for (int i=0; i<n; i++) {
scanf("%d", &x);
a.push(x);
}
int i=0;
while (a.size()) {
if (i == k) {
printf("%d", a.top());
return 0;
} if (++i == n) {
printf("%d", a.top());
return 0;
}
a.pop();
}
return 0;
}
这里空空如也


有帮助,赞一个