输入整数数组 arr
,找出其中最小的 k
个数。例如,输入 4、5、1、6、2、7、3、8 这 8 个数字,则最小的 4 个数字是 1、2、3、4
arr
进行排序(任意排序方法皆可,此处采用冒泡);int
型数组resultArr
,长度为传入的k
;k
个值传入上一步中所定义的数组resultArr
中;resultArr
;/**
* Created with IntelliJ IDEA.
* Version : 1.0
* Author : cunyu
* Email : cunyu1024@foxmail.com
* Website : https://cunyu1943.github.io
* Date : 2020/3/20 12:37
* Project : LeetCode
* Package : PACKAGE_NAME
* Class : Forty
* Desc : 40. 最小的k个数
*/
import java.util.ArrayList;
import java.util.Arrays;
public class Forty {
public static void main(String[] args) {
Forty forty = new Forty();
int[] array = {3,4,5,2,1,29,44,12};
int count = 4;
for (int item: forty.getLeastNumbers(array, count)){
System.out.println(item);
}
}
public int[] getLeastNumbers(int[] arr, int k) {
// 排序数组,冒泡排序
for(int i = 0; i < arr.length - 1; i++){
for (int j = 0; j < arr.length - 1 - i; j++){
if (arr[j] > arr[j + 1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
int[] resultArr = new int[k];
for (int m = 0; m < k; m++){
resultArr[m] = arr[m];
}
return resultArr;
}
}
[1]
面试题40. 最小的k个数: https://leetcode-cn.com/problems/zui-xiao-de-kge-shu-lcof/