Leetcode刷题100天—面试题 17.14. 最小K个数(优先队列)—day27

Posted 神的孩子都在歌唱

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode刷题100天—面试题 17.14. 最小K个数(优先队列)—day27相关的知识,希望对你有一定的参考价值。

前言:

作者:神的孩子在歌唱

大家好,我叫运智

面试题 17.14. 最小K个数

难度中等128收藏分享切换为英文接收动态反馈

设计一个算法,找出数组中最小的k个数。以任意顺序返回这k个数均可。

示例:

输入: arr = [1,3,5,7,2,4,6,8], k = 4
输出: [1,2,3,4]

提示:

  • 0 <= len(arr) <= 100000
  • 0 <= k <= min(100000, len(arr))
package 优先队列;

import java.util.PriorityQueue;

/*
 * https://leetcode-cn.com/problems/smallest-k-lcci/
 */
public class 面试题_17_14_最小K个数 {
//	将数组里的整数存入优先队列,在poll输出前k个数
    public int[] smallestK(int[] arr, int k) {
//    	定义返回数组
    	int[] res=new int[k];
//    	定义优先队列
    	PriorityQueue<Integer> queue=new PriorityQueue<>();//默认小顶堆
//    	for循环遍历存入队列
    	for(int ar:arr) {
    		queue.add(ar);
    	}
//    	在通过for循环遍历
    	for(int i=0;i<k;i++) {
    		res[i]=queue.poll();
    	}
    	return res;
    }
}

本人csdn博客:https://blog.csdn.net/weixin_46654114

转载说明:跟我说明,务必注明来源,附带本人博客连接。

以上是关于Leetcode刷题100天—面试题 17.14. 最小K个数(优先队列)—day27的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode刷题100天—面试题 03.04. 化栈为队(队列)—day13

Leetcode刷题100天—面试题 16.16. 部分排序(排序)—day58

Leetcode刷题100天—面试题 16.16. 部分排序(排序)—day58

LeetCode刷题第一周

LeetCode面试刷题技巧-二分查找算法代码思路解析

LeetCode 面试最热100题 跳跃游戏