题解 | 查找第K小数
#include <bits/stdc++.h> using namespace std; int main(){ int n; while(cin>>n){ priority_queue<int,vector<int>,greater<int>>q; set<int>x; for(int i=0;i<n;i++){ int a; cin>>a; x.insert(a); } for(auto a:x){ q.push(a); } int k; cin>>k; k--; while(k--)q.pop(); cout<<q.top()<<endl; } }
可以不用set去重,我这里为了省事直接用set了,然后用一个优先队列,上面的参数可以不写,不写默认就是less的形式,可以下面的逻辑稍微改一下也能用