查找一个数组的第K小的数,注意同样大小算一样大。 如 2 1 3 4 5 2 第三小数为3。
输入描述:
输入有多组数据。
每组输入n,然后输入n个整数(1<=n<=1000),再输入k。
输出描述:
输出第k小的整数。
输入样例
6
2 1 3 5 2 2
3
输出样例
3
#include<bits/stdc++.h>
using namespace std;
//优先队列
int arr[1000];
int main(){
//小顶堆
priority_queue <int,vector<int>,greater<int>> pq;
int n,x;
cin>>n;
for(int i=0;i<n;i++){
cin>>arr[i];
}
//len是去重后的长度
sort(arr, arr + n);
int len=unique(arr,arr+n)-arr;
for(int i=0;i<len;i++){
// cout<<arr[i]<<endl;
pq.push(arr[i]);
}
int k;
cin>>k;
int temp;
for(int j=0;j<k;j++){
temp=pq.top();
pq.pop();
}
cout<<temp<<endl;
return 0;
}