1. 使用最小堆, 设置最小堆的大小为K, 仅需遍历一遍即可

2. 寻找最大的 K 个数实质上是寻找第 K 大的数. 通过二分法在区间内不断校正 mid 的值来找到 pivot, 时间复杂度为 o(N*logN), 最后以 o(N) 的复杂度滤出 K-1 个数

3. 哈希算法, 假定数都是整数. 将所有的数看成二进制的, 若某一个数最高位为第 i 位, 则将该数放到第 i 个桶中, 统计各个桶中的个数, 递归求解, 逐步缩小 K 所在的桶的范围

相关文章:

  • 2022-12-23
  • 2022-01-11
  • 2022-02-18
  • 2021-12-06
  • 2022-02-01
  • 2021-06-17
  • 2021-12-21
  • 2022-12-23
猜你喜欢
  • 2021-08-25
  • 2021-12-30
  • 2022-02-19
  • 2021-04-02
  • 2021-06-25
  • 2021-08-05
  • 2022-12-23
相关资源
相似解决方案