保健品 东莞网站建设,商城网站建设二次开发,钦州网站建设排名,手机网页开发模板目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示 华为OD机试 2023B卷题库疯狂收录中#xff0c;刷题点这里 专栏导读
本专栏收录于《华为OD机试#xff08;JAVA#xff09;真题#xff08;A卷B卷#xff09;》。
刷的越多刷题点这里 专栏导读
本专栏收录于《华为OD机试JAVA真题A卷B卷》。
刷的越多抽中的概率越大每一题都有详细的答题思路、详细的代码注释、样例测试发现新题目随时更新全天CSDN在线答疑。
一、题目描述
疫情过后希望小学终于又重新开学了三年二班开学第一天的任务是将后面的黑板报重新制作。
黑板上已经写上了N个正整数同学们需要给这每个数分别上一种颜色。
为了让黑板报既美观又有学习意义老师要求同种颜色的所有数都可以被这种颜色中最小的那个数整除。
现在请你帮帮小朋友们算算最少需要多少种颜色才能给这N个数进行上色。
二、输入描述
第一行有一个正整数N其中。
第二行有N个int型数(保证输入数据在[1,100]范围中)表示黑板上各个正整数的值。 7 58 14 20 67 41 4 63 三、输出描述
输出只有一个整数为最少需要的颜色种数。 6 因为7个数中只有20能被4整除所以20和4一个颜色其它的都是不同颜色。
四、解题思路
读取输入的正整数个数 N读取输入的正整数数组 orgStrArr将 orgStrArr 转换为整数数组 list对 list 进行排序初始化变量 minType 为 0表示最少需要的颜色种数当 list 不为空时执行以下步骤 获取 list 的第一个数 first并从 list 中移除该数遍历 list 中的每个数如果可以被 first 整除则从 list 中移除该数更新 minType将颜色种数加一。 输出 minType表示最少需要的颜色种数。 五、Java算法源码
public static void main(String[] args) {Scanner scanner new Scanner(System.in);int maxLen Integer.parseInt(scanner.nextLine());String[] orgStrArr scanner.nextLine().split(\\s);ListInteger list new ArrayList();for (String str : orgStrArr) {if (list.size() maxLen) {list.add(Integer.parseInt(str));}}Collections.sort(list);IteratorInteger iterator;int first;while (list.size() 0) {iterator list.iterator();first iterator.next();iterator.remove();while (iterator.hasNext()) {if (iterator.next() % first 0) {iterator.remove();}}minType;}System.out.println(minType);
}六、效果展示 下一篇华为OD机试真题 Java 实现【路灯照明问题】【2022Q4 100分】感谢fly晨发现这个问题并提供更优质的算法
本文收录于华为OD机试JAVA真题A卷B卷
刷的越多抽中的概率越大每一题都有详细的答题思路、详细的代码注释、样例测试发现新题目随时更新全天CSDN在线答疑。