计数排序
class Solution {
public int[] getLeastNumbers(int[] arr, int k) {
if(k == 0 || arr.length == 0) return new int[0];
int[] count = new int[10001];
for(int num : arr) count[num]++;
int[] result = new int[k];
int index = 0;
for(int i = 0; i < count.length; i++){
while(count[i]-- > 0 && index < k) result[index++] = i;
if(index == k) break;
}
return result;
}
}
本文介绍了一种简单高效的计数排序算法实现方法。通过使用计数数组来统计每个元素出现的次数,进而得到前k个最小的整数。此算法适用于整数范围已知且不大的情况。
325

被折叠的 条评论
为什么被折叠?



