给定一个长度为 n 的可能有重复值的数组,找出其中不去重的最小的 k 个数。例如数组元素是4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4(任意顺序皆可)。
欢迎使用Markdown编辑器
javascript 实现
function GetLeastNumbers_Solution(arr, k) {
var i, j, temp, flag, brr;
flag = 0;
brr = [];//用于接收排好序的前k个数
//若数组为空或k>数组的长度,则查询失败
if (arr.length == 0 || k > arr.length)
return []
//1排序
for (i = 0; i < arr.length - 1; i++) {
for (j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
for (i = 0; i < k; i++) {
brr[i] = arr[i];
}
return brr;
}
module.exports = {
GetLeastNumbers_Solution : GetLeastNumbers_Solution
};
qq3048808457 看完觉得有问题的朋友可以加我qq