1. PriorityQueue用法
容量k,默认为小根堆,即堆顶的元素为堆的最小值。
PriorityQueue<Integer> queue = new PriorityQueue<>(K);
通过lambdas表达式设置排序方式,这里设置大顶堆,即堆顶的元素为堆的最大值。
PriorityQueue<Integer> queue = new PriorityQueue<>(K, (o1, o2) -> o2 - o1);
2. 第k个值的问题
如果是第k大,则可以用大顶堆排序,依次弹出k-1个数,则堆顶元素就是第k大。
如果是第k小,则可以用小顶堆排序,依次弹出k-1个数,则堆顶元素就是第k小。
牛客第BM47 题:寻找第K大
public class Solution {
public<