classKthLargest{// 维护一个大小为 k 的小顶堆,新加入一个元素和堆顶比较// 1. 如果比堆顶小,丢弃// 2. 如果比堆顶大,删除堆顶元素,加入新的 valPriorityQueue<Integer> queue;// 优先级队列intsize;// 堆的大小publicKthLargest(intk,int[] nums){// 初始化queue =newPriorityQueue<>(k); size =...
Java PriorityQueue默认是小顶堆 1. 解释Java PriorityQueue默认是小顶堆 在Java中,PriorityQueue是一个基于优先级堆的无界队列。默认情况下,PriorityQueue实现的是一个小顶堆,即队列中每次出队的元素都是当前队列中最小的元素。 2. 描述小顶堆的特性 最小元素先出:小顶堆的堆顶元素始终是当前堆中最小的元素。
顶部是最小元素的叫小顶堆,顶部是最大元素的叫大顶堆。PriorityQueue是小顶堆。对照上面的堆结构,对于任意父节点,以下标为4的节点 5 为例,它的两个子节点下标分别为2*4+1和2*4+2。关于完全二叉树和堆,记住下面几个结论,都是后面的源码分析中要用到的: 没有子节点的节点叫做叶子节点 下标为n的父节点的...