OlveraeUNSW
返回题目列表
COMP2521

堆 · 第 k 大

堆 · 第 k 大

给定 n 个整数和 k,输出第 k 大的值(可能有重复,按值排名)。

经典做法:建一个大小为 k 的最小堆,扫描所有数,堆满后只保留最大的 k 个,堆顶就是第 k 大——O(n log k)。也可直接排序后取第 k 个。

输入:第 1 行 n k;第 2 行 n 个整数。
输出:第 k 大的值。

例:输入 6 2 / 3 1 5 2 4 6 → 输出 5(降序 6 5 4 3 2 1,第 2 个是 5)。

样例

stdin
6 2
3 1 5 2 4 6
期望输出
5
stdin
1 1
9
期望输出
9
c-dcc
14