java小明有N个鸡蛋,每个鸡蛋各有重量,现在小明想找M个重量差距最小的鸡蛋摆成一盒出售 ,输出符合条件的最重一盒鸡蛋的总重量

简介: java小明有N个鸡蛋,每个鸡蛋各有重量,现在小明想找M个重量差距最小的鸡蛋摆成一盒出售 ,输出符合条件的最重一盒鸡蛋的总重量
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int N = scanner.nextInt();
        int M = scanner.nextInt();
        ArrayList<Double> weight = new ArrayList<>();
        for (int i = 0; i < N; i++) {
            weight.add(scanner.nextDouble());
        }
        Collections.sort(weight, new Comparator<Double>() {
            @Override
            public int compare(Double o1, Double o2) {
                if (o1 > o2) {
                    return 1;
                }else if (o1 == o2){
                    return 0;
                }else return -1;
            }
        });
        double smallValue = weight.get(M-1) - weight.get(0);
        double maxSum = 0.00;
        for (int i = 0; i < N-M; i++) {
            double sum = 0.0;
            double differValue = weight.get(i+M-1) - weight.get(i);
            for (int j = 0; j < M; j++) {
                sum += weight.get(i+j);
            }
            if (differValue <= smallValue){
                smallValue = differValue;
                maxSum = sum;
            }
        }
        System.out.printf("%.2f",maxSum);
    }
}
相关文章
|
5月前
|
Java
揭秘Java多态:为何同一消息,对象们却各有“心思”?
【6月更文挑战第17天】Java中的多态性让不同对象对同一方法有独特响应。以动物园为例,抽象类`Animal`定义`makeSound()`,子类如`Tiger`, `Lion`, `Monkey`继承并重写该方法。通过`Animal`引用调用,实际执行子类实现,展示动态绑定的威力。多态提升代码灵活性,支持扩展而无需改动原有代码,体现面向对象的核心思想。
27 2
|
6月前
|
Java
长度最小的子数组(Java详解)
长度最小的子数组(Java详解)
76 0
|
Java
【Java基础】Java8 使用 stream().filter()过滤List对象(查找符合条件的对象集合)
【Java基础】Java8 使用 stream().filter()过滤List对象(查找符合条件的对象集合)
335 0
|
Java
详解Java集合(含代码输出结果)
我们常用的集合 List Set Map 各有优点缺点 实现类无非ArrayList/LinkedList/HashSet/TreeSet/LinkedHashSet/HashMap/TreeMap/LinkedHashMap
258 1
详解Java集合(含代码输出结果)
剑指 Offer 45. 把数组排成最小的数 Java自定义排序
输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。
|
设计模式 Java 应用服务中间件
Java 如何正确地输出日志
日志就是记录程序的运行轨迹,方便查找关键信息,也方便快速定位解决问题。
Java 如何正确地输出日志
运用Java的for循环输出指定条件的素数
运用Java的for循环输出指定条件的素数
运用Java的for循环输出指定条件的素数
|
Java
最小的k个数(Java实现)
最小的k个数(Java实现)
119 1
|
Java
给定一个字符串和一个子串。子串中的字符可能重复,输出子串出现的次数。(Java实现)
给定一个字符串和一个子串。子串中的字符可能重复,输出子串出现的次数。(Java实现)
117 0
给定一个字符串和一个子串。子串中的字符可能重复,输出子串出现的次数。(Java实现)
|
算法 Java
三叉树的垂直输出(Java实现)
三叉树的垂直输出(Java实现)
212 0
三叉树的垂直输出(Java实现)