题解 | #查找第K小数#

查找第K小数

https://www.nowcoder.com/practice/204dfa6fcbc8478f993d23f693189ffd

#include<iostream>
#include<queue>
using namespace std;


int main(){
    int n;
    while(cin>>n){
        int k,num,j=1,ans; //ans记录第k小的数
        priority_queue<int,vector<int>,greater<int>> pq;
        for(int i=0;i<n;i++){
            cin>>num;
            pq.push(num);
        }
        cin>>k;
        ans=pq.top(); //初始化ans
        while(j!=k){  //通过j计数,如果j==k则表示找到了第k小的数
            if(ans==pq.top()){
                pq.pop();
            }
            else{
                ans=pq.top();
                pq.pop();
                j++;
            }
        }
        cout<<ans<<endl;
    }
    return 0;
}

全部评论

相关推荐

10-29 18:20
济南大学 Java
用微笑面对困难:他不是人事吗,怎么净特么不干人事
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务