⛰️ 堆

优先队列(堆)用于动态维护最大 / 最小值,TopK 问题的标准解法。

3 题  ·  中等 ×2  困难 ×1

# 题目 难度
215 数组中的第 K 个最大元素 中等
347 前 K 个高频元素 中等
295 数据流的中位数 困难

核心思路

  • 第 K 大元素:维护大小为 K 的最小堆,堆顶即第 K 大;也可用快速选择(平均 O(n))。
  • 前 K 个高频元素:先统计频率,再用大小为 K 的最小堆(按频率排序)保留频率最高的 K 个元素。
  • 数据流的中位数:大根堆存较小的一半,小根堆存较大的一半,保持两堆大小差不超过 1;中位数由堆顶推导。