欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

LeetCode--面试题40. 最小的k个数

程序员文章站 2024-03-15 09:00:11
...

LeetCode--面试题40. 最小的k个数
——————————————————————————————————————————————
方法1:排序之后取前 k 个

class Solution {
    public int[] getLeastNumbers(int[] arr, int k) {
        if(k == 0 || arr.length == 0) return new int[0];
		Arrays.sort(arr);
		int[] res = new int[k];
		for(int i = 0;i < k;i++) res[i] = arr[i];
		return res;
    }
}

方法2:堆排序

import java.util.PriorityQueue;

class Solution {
	
	public int[] getLeastNumbers(int[] arr, int k) {
		if(k == 0 || arr.length == 0) return new int[0];
		PriorityQueue<Integer> q = new PriorityQueue<Integer>(k);
		for(int i = 0;i < arr.length;i++) {
			q.add(arr[i]);
		}
		int[] res = new int[k];
		for(int i = 0;i < k;i++) res[i] = q.poll();
		return res;
    }
}
相关标签: LeetCode