返回首页

哈希表:频次统计(TopK 与众数)

一、面试常考点

1. 频次统计模板

先计数,再按题意排序/堆选/桶分组。

2. 性能关注点

大数据场景避免全量排序,优先最小堆或桶。

二、细节介绍

1. 计数

map.set(x, (map.get(x)||0)+1)

2. TopK

计数后可用最小堆维持 K 个高频元素。

三、示例代码(简化版)

function topKFrequent(nums, k) {
  const cnt = new Map()
  for (const x of nums) cnt.set(x, (cnt.get(x) || 0) + 1)

  return [...cnt.entries()]
    .sort((a, b) => b[1] - a[1])
    .slice(0, k)
    .map((it) => it[0])
}

四、常用应用场景

1. 日志热点统计

Top IP、Top 接口。

2. 推荐召回特征

高频行为/标签统计。