数组中的第 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 分别占据第二和第三位。
练习建议
先根据输入输出格式写出可运行程序,再用公开样例检查结果;遇到边界情况时,补充自测用例后提交。