【路飞】剑指 Offer 40. 最小的k个数

104 阅读1分钟

题目:

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

示例 1:

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

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

限制:

0 <= k <= arr.length <= 10000 0 <= arr[i] <= 10000

解题思路: 用冒泡排序吧整个数组从低到高排列起来 最后截取位数以前的数组

代码:

var getLeastNumbers = function(arr, k) {
   for (let i = 0; i < arr.length-1; i++) {
     for (let j = 0; j < arr.length-i-1; j++) {
         if(arr[j]>arr[j+1]){
             let swap = arr[j];
             arr[j]=arr[j+1];
             arr[j+1] = swap
         }
      }
    }
     return arr.slice(0,k)
  };