/** * File: top_k.kt * Created Time: 2024-01-25 * Author: curtishd (1023632660@qq.com) */ package chapter_heap import utils.printHeap import java.util.* /* 基於堆積查詢陣列中最大的 k 個元素 */ fun topKHeap(nums: IntArray, k: Int): Queue { // 初始化小頂堆積 val heap = PriorityQueue() // 將陣列的前 k 個元素入堆積 for (i in 0.. heap.peek()) { heap.poll() heap.offer(nums[i]) } } return heap } /* Driver Code */ fun main() { val nums = intArrayOf(1, 7, 6, 3, 2) val k = 3 val res = topKHeap(nums, k) println("最大的 $k 個元素為") printHeap(res) }