|
|
@ -7,7 +7,7 @@
|
|
|
|
import { MaxHeap } from './my_heap';
|
|
|
|
import { MaxHeap } from './my_heap';
|
|
|
|
|
|
|
|
|
|
|
|
/* 基于堆查找数组中最大的 k 个元素 */
|
|
|
|
/* 基于堆查找数组中最大的 k 个元素 */
|
|
|
|
function top_k_heap(nums: number[], k: number): number[] {
|
|
|
|
function topKHeap(nums: number[], k: number): number[] {
|
|
|
|
// 将堆中所有元素取反,从而用大顶堆来模拟小顶堆
|
|
|
|
// 将堆中所有元素取反,从而用大顶堆来模拟小顶堆
|
|
|
|
const invertedNums = nums.map((num) => -num);
|
|
|
|
const invertedNums = nums.map((num) => -num);
|
|
|
|
// 将数组的前 k 个元素入堆
|
|
|
|
// 将数组的前 k 个元素入堆
|
|
|
@ -30,5 +30,5 @@ function top_k_heap(nums: number[], k: number): number[] {
|
|
|
|
/* Driver Code */
|
|
|
|
/* Driver Code */
|
|
|
|
const nums = [1, 7, 6, 3, 2];
|
|
|
|
const nums = [1, 7, 6, 3, 2];
|
|
|
|
const k = 3;
|
|
|
|
const k = 3;
|
|
|
|
const res = top_k_heap(nums, k);
|
|
|
|
const res = topKHeap(nums, k);
|
|
|
|
console.log(`最大的 ${k} 个元素为`, res);
|
|
|
|
console.log(`最大的 ${k} 个元素为`, res);
|
|
|
|