堆与优先队列面试题28 题
- 01 什么是堆?大顶堆和小顶堆有什么区别?堆和优先队列是什么关系?
- 02 堆排序的原理和过程是什么?它稳定吗?
- 03 堆为什么用数组存储?父子节点的下标关系是什么?
- 04 堆有哪些典型应用?(合并 K 个有序链表、Dijkstra、定时任务等)
- 05 前 K 个高频元素如何用堆解决?
- 06 如何把一个数组建成堆(heapify)?为什么自底向上建堆是 O(n)?
- 07 如何用堆求离原点最近的 K 个点?
- 08 如何用堆维护数据流中的第 K 大元素?
- 09 如何用堆找有序矩阵中的第 K 小元素?
- 10 如何用小顶堆合并 K 个有序链表或数组?
- 11 什么是优先队列?Java 的 PriorityQueue 怎么用?
- 12 Top K 问题怎么用堆解决?求最大的 K 个为什么用小顶堆?
- 13 滑动窗口中位数为什么常用双堆加延迟删除?
- 14 如何求数据流的中位数?(对顶堆)
- 15 如何用堆找和最小的 K 对数字?
- 16 优先队列不支持删除任意元素或修改优先级时怎么办?
- 17 定时器为什么常用小顶堆实现?它和时间轮有什么区别?
- 18 堆如何删除任意位置的元素?为什么删除后可能上浮也可能下沉?
- 19 堆是如何插入一个元素的?什么是「上浮」?
- 20 堆是如何删除堆顶元素的?什么是「下沉」?
- 21 实现优先队列时,堆和平衡树应该怎么选?
- 22 使用优先队列时,比较器有哪些常见坑?
- 23 索引优先队列是什么?它为什么能支持修改优先级?
- 24 d 叉堆是什么?它和二叉堆相比有什么取舍?
- 25 堆是稳定的吗?优先级相同的元素如何保证先来先出?
- 26 如何用堆求覆盖 K 个有序列表的最小区间?
- 27 什么是 Min-Max Heap?它如何同时支持取最小值和最大值?
- 28 什么是可合并堆?左偏堆、斜堆和二项堆解决了什么问题?
没有符合条件的题目。