package com.likou;
import java.util.Arrays;
/**
* 输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。
*/
public class test40 {
public static void main(String[] args) {
int[] arr = new int[]{3,2,1};
int k = 2;
int[] re = new int[k];
re = getLeastNumbers(arr,k);
System.out.println(Arrays.toString(re));
}
/**
* 最小的k个数
* @param arr
* @param k
* @return
*/
public static int[] getLeastNumbers(int[] arr, int k) {
int[] re = new int[k];
// 排序
for(int j=1;j<=arr.length;j++){
boolean flag = false;
for (int i=0;i<arr.length-j;i++){
// 两两比较
if(arr[i]>arr[i+1]){
int temp = 0;
temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
flag = true;
}
}
if (!flag){
break;
}
}
// 截取前k个值
for (int i=0;i<k;i++){
re[i] = arr[i];
}
return re;
}
}
最小的k个数-java
最新推荐文章于 2021-05-27 11:38:34 发布