Java 算法:计算彩虹糖组合带来的高兴天数

例如,小美有6颗彩虹糖,颜色分别是【1,1,4,5,1,4】。

小美第一天吃颜色为1和4的彩虹糖,小美会很高兴;

小美第二天吃颜色为4和1的彩虹糖,小美不会很高兴;

小美第三天吃颜色为1和5的彩虹糖,小美会很高兴;此时小美共有2天很高兴。

小美想知道,她最多会有几天很高兴。

彩虹糖数量为用户自主输入内容:```java import java.util.*;

public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("请输入彩虹糖的数量:"); int n = scanner.nextInt();

    int[] colors = new int[n];
    System.out.println("请输入彩虹糖的颜色:");
    for (int i = 0; i < n; i++) {
        colors[i] = scanner.nextInt();
    }
    
    int maxHappyDays = getMaxHappyDays(colors);
    System.out.println("小美最多会有 " + maxHappyDays + " 天很高兴");
}

public static int getMaxHappyDays(int[] colors) {
    int maxHappyDays = 0;
    int[] count = new int[10];
    
    for (int i = 0; i < colors.length; i++) {
        count[colors[i]]++;
    }
    
    for (int i = 1; i < count.length; i++) {
        for (int j = i + 1; j < count.length; j++) {
            int happyDays = Math.min(count[i], count[j]);
            maxHappyDays = Math.max(maxHappyDays, happyDays);
        }
    }
    
    return maxHappyDays;
}

}


以上代码首先获取用户输入的彩虹糖数量和颜色,并调用`getMaxHappyDays`方法来计算最多的高兴天数。

`getMaxHappyDays`方法通过遍历彩虹糖颜色数组,统计每种颜色的数量,然后找出两种颜色中数量较小的那个,作为当前两种颜色能够组成的高兴天数,然后更新最大的高兴天数。

最后输出最大的高兴天数。
Java 算法:计算彩虹糖组合带来的高兴天数

原文地址: https://www.cveoy.top/t/topic/qCdT 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录