Menu
CoddyTech

Kth Largest Element in an Array

中等堆排序python iconjava iconcpp iconc iconjs icon+10

给你一个整数数组 nums 和一个整数 k。返回 nums 中第 k 大的值:将数组按从大到小排序后,从 1 开始计数,位于第 k 个位置的值。

相同的值要分别计数。在 [5, 5, 1] 中,最大的值是 5,第二大的值也是 5。

函数

findKthLargest(nums: integer-array, k: integer) → integer
numsinteger-array
要排序的值
kinteger
要返回哪个最大值,1 表示最大的值
返回值integer
第 k 大的值,重复值也计入

约束条件

  • 1 ≤ k ≤ nums.length ≤ 104
  • -104 ≤ nums[i] ≤ 104
  • 相等的值也会分别计数。

示例

输入
nums = [7, 2, 9, 4, 9, 1]k = 2
输出
9
解释
从大到小排列,这些值是 9, 9, 7, 4, 2, 1。两个 9 分别计数,因此第二大的值是 9,不是 7。
challenge icon

进阶

现在,值会一次到达一个。你能在每个值到达后,用 O(log n) 的时间报告目前为止所有值的中位数吗?

重置代码
def findKthLargest(nums, k):
    # 在这里编写代码

测试 #1

测试 #2

测试 #3

参数

nums = [7, 2, 9, 4, 9, 1]
k = 2

预期输出

9