当前位置:网站首页>JZ40 最小的K个数
JZ40 最小的K个数
2022-08-02 15:35:00 【syc596】
JZ40 最小的K个数
最小的K个数_牛客题霸_牛客网 (nowcoder.com)
NC119 最小的K个数
最小的K个数_牛客题霸_牛客网 (nowcoder.com)
// //Arrays.sort
// import java.util.*;
// public class Solution {
// public ArrayList<Integer> GetLeastNumbers_Solution(int [] array, int k) {
// ArrayList<Integer> ret=new ArrayList<>();
// if(array==null||array.length==0||k==0||k>array.length){
// return ret;
// }
// Arrays.sort(array);
// for(int i=0;i<k;i++){
// ret.add(array[i]);
// }
// return ret;
// }
// }
//堆-优先级队列-最小的k个数-建大堆
//PriorityQueue默认为小堆,建大堆需要调用Collections.reverseOrder()
import java.util.*;
public class Solution {
public ArrayList<Integer> GetLeastNumbers_Solution(int [] array, int k) {
ArrayList<Integer> ret=new ArrayList<>();
if(array==null||array.length==0||k==0||k>array.length){
return ret;
}
PriorityQueue<Integer> pq=new PriorityQueue<>(k,Collections.reverseOrder());
for(int i=0;i<k;i++){
pq.offer(array[i]);
}
for(int i=k;i<array.length;i++){
if(array[i]<pq.peek()){
pq.poll();
pq.offer(array[i]);
}
}
for(int i=0;i<k;i++){
ret.add(pq.poll());
}
return ret;
}
}边栏推荐
猜你喜欢
随机推荐
Go-4-在vim中无法跳转到源代码
Why do I no longer recommend the enumeration strategy pattern?
快速搞懂Seata分布式事务AT、TCC、SAGA、XA模式选型
做好私域流量!全民拼购就可以了。
节省50%成本!京东云重磅发布新一代混合CDN产品
Go-6-常用命令-go包管理问题-两个路径-GO111MODULE
DC-DC选型及电路设计
Azure Kinect(K4A)人体识别跟踪进阶
系统延时任务及定时任务
太帅了!我用炫酷大屏展示爬虫数据!
QueryWrapper方法解释
esp32之arduino配置下载提速
“绿色低碳+数字孪生“双轮驱动,解码油气管道站升级难点
面试官的角度谈谈算法岗面试的过程(岗位涉及到OCR、目标检测、图像分割、语音识别等领域)
矢量图的作用与工具
最强分布式锁工具:Redisson
【2022河南萌新联赛第(四)场:郑州轻工业大学】【部分思路题解+代码解析】
Basic management of system storage -- mounts, partitions, user quotas
【Codeforces Round #811 (Div. 3)】【题目解析+AK代码】
MySQL-2-设置权限-创建表









