import java.util.*;
public class Solution {
//采用了优先队列来构建大顶堆
//https://www.cnblogs.com/yongh/p/9945539.html
public ArrayList<Integer> GetLeastNumbers_Solution(int [] input, int k) {
ArrayList<Integer> result = new ArrayList();
if(k<=0||k>input.length) return result;
PriorityQueue<Integer> queue = new PriorityQueue<>((num1, num2)->num2-num1);
for(int i = 0; i<input.length; i++) {
if (i<k) {
queue.offer(input[i]);
} else {
if (queue.peek()>input[i]) {
queue.poll();
queue.offer(input[i]);
}
}
}
for(int j=0;j<k;j++) {
result.add(queue.poll());
}
return result;
}
}