题解 | #查找第K小数#

查找第K小数

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

#include<iostream>
#include<queue>
#include<unordered_set>
using namespace std;
int main() {
    priority_queue<int, vector<int>, less<int>>q;
    unordered_set<int>data_set;
    int N;
    scanf("%d", &N);
    vector<int>data_list;
    while (N--) {
        int data;
        scanf("%d", &data);
        data_list.push_back(data);
    }
    int K;
    scanf("%d", &K);
    for (int i = 0; i < data_list.size(); i++) {
        int data = data_list[i];
        if (data_set.find(data) == data_set.end()) {
            data_set.insert(data);
            q.push(data);
        }
        if (q.size() > K) {
            q.pop();
        }
    }
    int data = q.top();
    cout << data;
}

全部评论

相关推荐

牛舌:如果我不想去,不管对方给了多少,我一般都会说你们给得太低了。这样他们就会给下一个offer的人更高的薪资了。
点赞 评论 收藏
分享
11-06 10:58
已编辑
门头沟学院 嵌入式工程师
双非25想找富婆不想打工:哦,这该死的伦敦腔,我敢打赌,你简直是个天才,如果我有offer的话,我一定用offer狠狠的打在你的脸上
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务