美文网首页
面试题 17.14. 最小K个数

面试题 17.14. 最小K个数

作者: Abeants | 来源:发表于2022-02-08 22:33 被阅读0次

设计一个算法,找出数组中最小的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))

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/smallest-k-lcci
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题思路及方法

用了优先队列,去巧了。
记录:

class Solution {
    public int[] smallestK(int[] arr, int k) {
        PriorityQueue<Integer> count = new PriorityQueue<>();
        // 入队
        for (int i : arr) {
            count.offer(i);
        }

        int[] res = new int[k];
        for (int i = 0; i < k; i++) {
            res[i] = count.poll();
        }

        return res;
    }
}

结果如下:

相关文章

网友评论

      本文标题:面试题 17.14. 最小K个数

      本文链接:https://www.haomeiwen.com/subject/vdpikrtx.html