https://leetcode.com/problems/kth-largest-element-in-a-stream/ | Easy |
---|
Реализуйте класс KthLargest
, который находит k-й по величине элемент в потоке чисел. Класс должен поддерживать следующие операции:
• KthLargest(k: Int, nums: IntArray)
: Инициализирует объект с целым числом k
и потоком чисел nums
.
• add(val: Int): Int
: Добавляет число val
в поток и возвращает k-й по величине элемент.
class KthLargest(private val k: Int, nums: IntArray) {
private val heap = PriorityQueue<Int>()
init {
for (num in nums) {
heap.offer(num)
if (heap.size > k) heap.poll()
}
}
fun add(`val`: Int): Int {
heap.offer(`val`)
if (heap.size > k) heap.poll()
return heap.peek()
}
}