题目描述
给定一个数组,找出其中最小的K个数。例如数组元素是4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。如果K>数组的长度,那么返回一个空的数组
示例1
输入
[4,5,1,6,2,7,3,8],4
返回值
[1,2,3,4]
代码思路
首先用sort()方法进行排序,然后用filter方法进行过滤即可
代码
首先了解一下sort()
了解一下filter()
filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
注意: filter() 不会对空数组进行检测。
注意: filter() 不会改变原始数组。
实例
返回数组 ages 中所有元素都大于 18 的元素:
var ages = [32, 33, 16, 40];
function checkAdult(age) {
return age >= 18;
}
function myFunction() {
document.getElementById("demo").innerHTML = ages.filter(checkAdult);
}输出结果为:
32,33,40
答案
function GetLeastNumbers_Solution(input, k)
{
if(k<=0 || k>input.length){
return []
}
input.sort(paixu);
return input.filter(function(item,index){
return index<k;
})
}
function paixu(a,b){
return a-b;
}
运行环境:JavaScript (V8 6.0.0)
运行时间:10ms
占用内存:5384KB