最小的第k个数
我么是采用优先队列来做的,其实就是堆。

import java.util.ArrayList;
import java.util.PriorityQueue;
public class Solution {
public ArrayList<Integer> GetLeastNumbers_Solution(int [] input, int k) {
PriorityQueue<Integer> pq=new PriorityQueue<>((a,b)->b-a);
ArrayList<Integer> res=new ArrayList<>();
for(int x:input){
if(pq.size()<k){
pq.add(x);
}else{
pq.add(x);
pq.poll();
}
}
for(int x:pq){
res.add(x);
}
return res;
}
}

浙公网安备 33010602011771号