剑指 Offer 40. 最小的k个数

题目描述:

输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。

示例:

输入:arr = [3,2,1], k = 2
输出:[1,2] 或者 [2,1]

输入:arr = [0,1,2,1], k = 1
输出:[0]

思路:

先判断k是否超过数组的长度
然后进行排序(升序或者降序都可以,
最后再进行slice()

代码:

1
2
3
4
5
6
7
8
var getLeastNumbers = function(arr, k) {
if(k>arr.length) return [];

arr.sort((a,b)=>a-b);
return arr.slice(0,k);

// return arr.sort((a, b) => a - b).slice(0, k);
};