LeetCode题解:剑指 Offer 40. 最小的k个数,sort,JavaScript,详细注释

103 阅读1分钟

原题链接:leetcode-cn.com/problems/zu…

解题思路:

  1. 将数组从小到大排序。
  2. 遍历已排序数组,依取出前k个元素。
/**
 * @param {number[]} arr
 * @param {number} k
 * @return {number[]}
 */
var getLeastNumbers = function(arr, k) {
  let result = []; // 存储结果
  arr.sort((a, b) => a - b); // 将数组从小到大排序

  // 从已排序的数组中取出k个元素
  for (let i = 0; i < k; i++) {
    result.push(arr[i]);
  }
  
  return result;
};
/**
 * @param {number[]} arr
 * @param {number} k
 * @return {number[]}
 */
var getLeastNumbers = function(arr, k) {
  return arr.sort((a, b) => a - b).splice(0, k)
};