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") } }