最小的第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;
    }
}
posted @ 2022-04-17 20:48  ArtiaDeng  阅读(31)  评论(0)    收藏  举报