最小的k个数
使用大根堆实现
class Solution {
public List<Integer> getLeastNumbers_Solution(int [] input, int k) {
List<Integer> res = new ArrayList<>();
//默认是小根堆
Queue<Integer> queue = new PriorityQueue<>(new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o2 - o1;
}
});
for (int x: input) {
queue.offer(x);
if (queue.size() > k)
queue.poll();
}
while (!queue.isEmpty())
res.add(0,queue.poll());
return res;
}
}