Fork me on GitHub

16. 找到堆的前 k 个元素

正文

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
fun findKthLargest(nums: IntArray, k: Int): Int {
// 创建最小堆
val minHeap = PriorityQueue<Int>()

// 将数组中的元素依次加入最小堆
for (num in nums) {
minHeap.offer(num)

// 如果最小堆的大小超过 k,移除堆顶元素
if (minHeap.size > k) {
minHeap.poll()
}
}

// 返回堆顶元素,即第 k 大的元素
return minHeap.peek()
}
,