最小的K個數(優先級隊列)

題目描述
輸入n個整數,找出其中最小的K個數。例如輸入4,5,1,6,2,7,3,8這8個數字,則最小的4個數字是1,2,3,4,。

import java.util.*;
public class Solution {
    public ArrayList<Integer> GetLeastNumbers_Solution(int [] input, int k) {
        PriorityQueue<Integer> q=new PriorityQueue<Integer>();
        ArrayList<Integer> ans=new ArrayList<Integer>();
        if(input==null||k>input.length) return ans;
        for(int i=0;i<input.length;i++){
            q.offer(input[i]);
        }
        while(!q.isEmpty()&&k>0){
            ans.add(q.poll());
            k--;
        }
        return ans;
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章