美文网首页
面试题 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