题目描述
小明今天收了N个鸡蛋,每个鸡蛋各有重量,现在小明想找M个重量差距最小的鸡蛋摆成一盒出售,输出符合条件的最重一盒鸡蛋的总重量.。
输入说明
第一行,用空格分隔的2个整数,分别表示鸡蛋个数N(N<1000)和每盒个数M(M<N);
第二行,N个鸡蛋重量(浮点)。
输出说明
1行,符合条件的最重一盒鸡蛋的总重量(保留2位小数)
输入样例复制
8 4
11 9 12 5 10 19 8 6
输出样例复制
42.00
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
double[] num = new double[n];
for(int i=0;i<n;i++){
num[i]=sc.nextDouble();
}
Arrays.sort(num);
double maxSum = 0;
double minDifferValue = Double.MAX_VALUE;
for(int i=0;i<n-m;i++){
double sum = 0;
//数组排好序后M为一组,一组差距值为这一 组末尾元素减这一组第一个
double differValue = num[i+m-1]-num[i];
for(int j = 0;j<m;j++){
sum+=num[j+i];
}
if(differValue<=minDifferValue){
maxSum = sum;
minDifferValue=differValue;
}
}
System.out.print(String.format("%.2f",maxSum));
}
}