三种思路:1.排序 2.partition() 3.PriorityQueue() 小根堆
注意 k 大于数组的特殊情况;
public class Solution {
public ArrayList<Integer> GetLeastNumbers_Solution(int [] input, int k) {
ArrayList<Integer> res = new ArrayList<>();
if (k > input.length) return res;
PriorityQueue<Integer> q = new PriorityQueue<>();
for (int i : input) {
q.offer(i);
}
for (int i = 0; i < k; i++) {
res.add(q.poll());
}
return res;
}
}
网友评论