题解 | #查找第K小数#
查找第K小数
http://www.nowcoder.com/questionTerminal/204dfa6fcbc8478f993d23f693189ffd
#include<iostream>
#include<queue>
using namespace std;
int main(){
int n,k;
while(scanf("%d",&n)!=EOF){
priority_queue< int,vector<int>,greater<int> >myque;//小根堆的优先队列
int x;
while(n--){
scanf("%d",&x);
myque.push(x);
}
scanf("%d",&k);
for(int i=1;i<k;i++){
int m=myque.top();
myque.pop();
while(m==myque.top())myque.pop();//直到top与刚出队的元素不同
}
printf("%d\n",myque.top());
}
return 0;
}
查看6道真题和解析
字节跳动公司福利 1307人发布