0
点赞
收藏
分享

微信扫一扫

NC88 寻找第K大

迎月兮 2022-03-18 阅读 35

描述

有一个整数数组,请你根据快速排序的思路,找出数组中第 k 大的数。

给定一个整数数组 a ,同时给定它的大小n和要找的 k ,请返回第 k 大的数(包括重复的元素,不用去重),保证答案存在。

class Solution {
public:
	int findKth(vector<int> a, int n, int K) {
		priority_queue<int, vector<int>, greater<int> > q;//小根堆
		for (int i : a)
		{
			if (q.size()<K)//维持大小为k的小根堆
				q.push(i);
			else
			{
				if (q.top()<i)
				{
					q.pop();
					q.push(i);
				}
			}
		}
		return q.top();
	}
};
举报

相关推荐

0 条评论