查找数组中第k小的元素
优质
小牛编辑
137浏览
2023-12-01
#include <iostream>
#include<queue>
#include<vector>
using namespace std;
int KthNum(vector<int> num,int k)
{
int size=num.size();
if(size==0) return -1;
priority_queue<int,vector<int>,less<int>> q;
int i=0;
while(i<size)
{
if(q.size()<k)
{
q.push(num[i++]);
}
else
{
if(q.top()>num[i])
{
q.pop();
q.push(num[i]);
}
i++;
}
}
return q.top();
}
int main()
{
vector<int> num={3,6,1,7,2,4,8,9};
int res= KthNum(num,4);
cout<<res;
return 0;
}