CodeACM
HOT 100 · 堆 · LC 215

数组中的第 K 个最大元素:ACM 模式刷题

按标准输入读取测试数据,输出结果后可在 CodeACM 在线运行和提交。

题目描述

给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。

请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。

你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。

输入格式

第一行输入 n 和 k,第二行输入 n 个整数。

输出格式

输出数组中第 k 大的元素。

数据范围

  • 1 ≤ k ≤ n ≤ 10⁵
  • −10⁴ ≤ nums[i] ≤ 10⁴

公开样例

样例 1

输入

6 2
3 2 1 5 6 4

输出

5

降序排列后的第二个元素为 5。

样例 2

输入

9 4
3 2 3 1 2 4 5 5 6

输出

4

重复的 5 分别占据第二和第三位。

练习建议

先根据输入输出格式写出可运行程序,再用公开样例检查结果;遇到边界情况时,补充自测用例后提交。