两种实用方法,没啥难点,代码自己看吧

class Solution {
public:
int findKth(vector<int> a, int n, int K) {
    multiset<int, greater<int>> multy(a.begin(), a.end());
    auto it = multy.begin();
    for (int i = 1; i < K; i++) {
        it++;
    }
    return *it;
    
    // 最大堆
    priority_queue<int,vector<int>,less<int>> maxHeap;
    // 最小堆
    priority_queue<int, vector<int>, greater<int>> minHeap;
    
    for (auto it = a.begin(); it != a.end(); it++) {
        if (minHeap.size() < K) {
            minHeap.push(*it);
        } else if (minHeap.top() < *it) {
            maxHeap.push(minHeap.top());
            minHeap.pop();
            minHeap.push(*it);
        } else {
            maxHeap.push(*it);
        }
        
    }
    return minHeap.top();
    // write code here
}
};