最小K个数(算法)

思路:采用二叉小顶堆实现

add()、offer()方法:插入元素(保持二叉小顶堆结构)

element()、peek()方法:获取权值最小元素(堆顶)

remove()、poll()方法:获取并删除队首元素

 1 public ArrayList<Integer> minKNumber(int[]arr, int k){
 2     
 3     int low = 0;
 4     int high = arr.length-1;
 5     int index = -1;//下标
 6     
 7     PriorityQueue<Integer> queue = new PriorityQueue<>();  
 8     for(int i=0;i<arr.length;i++){
 9         queue.add(arr[i]);
10     }
11     
12     ArrayList<Integer> list = new ArrayList<>();
13     for(int i=0;i<k;i++){
14        list.add(queue.poll());
15     }
16     
17     return list;
18 }

 

posted @ 2022-01-05 13:46  Q子  阅读(55)  评论(0)    收藏  举报