import scala.collection.mutable.PriorityQueue
object KthLargestElement {
def findKthLargest(nums: Array[Int], k: Int): Int = {
val minHeap = PriorityQueue.empty[Int]
for (num <- nums) {
if (minHeap.size < k) {
minHeap.enqueue(num)
} else if (num > minHeap.head) {
minHeap.dequeue()
minHeap.enqueue(num)
}
}
minHeap.head
}
def main(args: Array[String]): Unit = {
val nums = Array(3, 2, 1, 5, 6, 4)
val k = 2
val kthLargest = findKthLargest(nums, k)
println(s"The $k-th largest element is $kthLargest")
}
}