kth 概述
Posted thefist11
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kth 概述相关的知识,希望对你有一定的参考价值。
kth既是寻找未排序数组中第k大的数
1. 排序法
将数组排序后,返回第k个元素。
. 复杂度
时间 O(NlogN)
空间 O(1)
2. 优先队列
遍历数组时将数字加入优先队列(堆),一旦堆的大小大于k就将堆顶元素去除,确保堆的大小为k。遍历完后堆顶就是返回值。
. 复杂度
时间 O(NlogK)
空间 O(K)
int findKthLargest(int a[], int nSize, int k)
// Creating a min-heap using priority queue
priority_queue<int, vector<int>, greater<int> > q;
for (int i = 0; i < nSize; i++)
q.push(a[i]);
if (q.size() > k)
q.pop();
return q.top();
void test()
int a[] = 1, 4, 5, 2, 10, 8 ;
int aSize = sizeof(a) / sizeof(int);
int k = findKthLargest(a, aSize, 3);
std::cout << "end" << std::endl;
【引用】
[1] 代码kth.h
以上是关于kth 概述的主要内容,如果未能解决你的问题,请参考以下文章
VS2017里使用mysql出现错误,无法定位序数3283...
电脑老是出现“无法定位序数4445于动态链接库”,是怎么回事儿?
703. Kth Largest Element in a Stream/215. Kth Largest Element in an Array/