目录

题目描述

输入描述

输出描述

用例

题目解析

算法源码


题目描述

疫情过后,希望小学终于又重新开学了,三年二班开学第一天的任务是将后面的黑板报重新制作。

黑板上已经写上了N个正整数,同学们需要给这每个数分别上一种颜色。

为了让黑板报既美观又有学习意义,老师要求同种颜色的所有数都可以被这种颜色中最小的那个数整除。

现在请你帮帮小朋友们,算算最少需要多少种颜色才能给这N个数进行上色。

输入描述

第一行有一个正整数N,其中。

第二行有N个int型数(保证输入数据在[1,100]范围中),表示黑板上各个正整数的值。

输出描述

输出只有一个整数,为最少需要的颜色种数。

用例

输入

3

2 4 6

输出 1
说明 所有数都能被2整除

题目解析

简单的逻辑题,题目要求:“同种颜色的所有数都可以被这种颜色中最小的那个数整除”。

因此我们可以直接将输入数列进行升序排序,则数列从左到右,元素依次增大,我们每次取最左边的数arr[i],然后遍历它后面的所有数arr[j]去除它,若可以整除,则为一种颜色,若不可以整除,则为不同颜色。

本题难点主要在于,如何标记一个元素已经涂色了,我这里直接定义了一个长度和输入数列arr相同的数组color,color所有元素默认未初始化,一旦arr[j]可以整除arr[i],则color[j] = true。

算法源码

/* JavaScript Node ACM模式 控制台输入获取 */
const readline = require("readline");const rl = readline.createInterface({input: process.stdin,output: process.stdout,
});const lines = [];
rl.on("line", (line) => {lines.push(line);if (lines.length === 2) {let n = parseInt(lines[0]);let arr = lines[1].split(" ").slice(0, n);console.log(getMinColorCount(arr));lines.length = 0;}
});function getMinColorCount(arr) {arr.sort((a, b) => a - b);if (arr[0] === 1) {return 1;}let color = new Array(arr.length);let count = 0;for (let i = 0; i < arr.length; i++) {if (color[i]) continue;color[i] = true;for (let j = i + 1; j < arr.length; j++) {if (!color[j] && arr[j] % arr[i] === 0) {color[j] = true;}}count++;}return count;
}

华为机试 - 数字涂色相关推荐

  1. 华为机试——数字颠倒

    题目描述 描述: 输入一个整数,将这个整数以字符串的形式逆序输出 程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001 输入描述: 输入一个int整数 输出描述: 将 ...

  2. 【华为OD机试真题 C++】数字涂色 【2022 Q4 | 100分】

    ■ 题目描述 [数字涂色] 疫情过后,希望小学终于又重新开学了,三年二班开学第一天的任务是将后面的黑板报重新制作. 黑板上已经写上了N个正整数,同学们需要给这每个数分别上一种颜色. 为了让黑板报既美观 ...

  3. 华为机试(JAVA)真题Od【A卷+B卷】

    各语言题库: [Python+JS+Java合集][超值优惠]:Py/JS/Java合集 [Python]:Python真题题库 [JavaScript]:JavaScript真题题库 [Java]: ...

  4. 华为机试(Python)真题Od【A卷+B卷】

    各语言题库: [Python+JS+Java合集][超值优惠]:Py/JS/Java合集 [Python]:Python真题题库 [JavaScript]:JavaScript真题题库 [Java]: ...

  5. 【华为机试真题Java】从入门到入职-真题列表导读

    写在前面 本专栏有100+道题(持续更新中),都是往期的HW机试真题,根据过往同学的经验基本都会考到原题.大家有什么不懂的都可以留言. 华为机试有三道题目,第一道和第二道属于简单或中等题,分值为100 ...

  6. 【华为机试真题 Python实现】2022年4、5月高频机试题

    文章目录 2022年4.5月高频机试题 机试必须要会的函数 输入输出处理 for 循环 通过下标访问元素 直接迭代访问元素 同时访问下标和元素 while 循环 字符ASSIC码转换 进制转换 绝对值 ...

  7. 【华为机试】死记硬背没思路?一般人我劝你还是算了吧

    大家好,我是哪吒. 五月份之前,如果你参加华为OD机试,收到的应该是2022Q4或2023Q1,这两个都是A卷题. 5月10日之后,很多小伙伴收到的是B卷,那么恭喜你看到本文了,抓紧刷题吧.B卷新题库 ...

  8. 华为机试真题分类汇总

    1. 字符串 类别 题目 知识点 题目分值 / 难度 字符串 [华为机试真题 JAVA]TLV解析Ⅰ-100 字符串分隔.拼接.搜索 100/中等 字符串 [华为机试真题 JAVA]寻找相同子串-10 ...

  9. 【华为机试 Python实现】华为机试题集合(已更新171篇)

    文章目录 新手指引 数据结构基础 华为机试真题系列 牛客网华为机试系列 Python 八股文系列 <华为机试真题详解>专栏定价99.9 包含 <华为机试真题>的所有题目. 包含 ...

  10. 牛客网–华为机试在线训练9:提取不重复的数

    牛客网–华为机试在线训练9:提取不重复的数 题目描述 输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数. 输入描述: 输入一个int型整数 输出描述: 按照从右向左的阅读顺 ...

最新文章

  1. 独家 | 神策 2019 数据驱动大会现场「视频+PPT」合集
  2. mysql中如何卸载插件_Eclipse中如何卸载插件
  3. linux pe大小,lvm中的pe默认是4M 最大能支持多大 1T?2T
  4. springMVC学习(7)-springMVC校验
  5. wss3.0 对文档库的一些操作
  6. Null pointer access: The variable number can only be null at this location。 错误解决
  7. C语言输出大写金额,编程实现,输入一个人民币小写金额值,转化为大写金额值输出。先实现基本功能...
  8. 我爱淘冲刺阶段站立会议每天任务4
  9. 工业元宇宙的价值和发展
  10. 邂逅APP + 网站平台的产品设想
  11. 计算机系统结构知识总结,计算机基础知识总结
  12. 欧氏距离与马氏距离的优缺点是什么?
  13. nrf52 iic使用
  14. Davinci学习-Dem
  15. Android SwipeLayout实现界面滑动布局
  16. 模式先行区块链商城将颠覆传统商城
  17. 【C语言】!!是什么意思?
  18. 更改office安装的默认路径
  19. [一般问题] s60 3rd 模拟器无法启动(转)
  20. CSS画实心三角形【格智网络科技 面试题】

热门文章

  1. jQuery实现表格行的动态增加与删除(改进版)
  2. 勾股定理的毕达哥拉斯证明
  3. kettle连接mysql 8.0以上数据库所需驱动包
  4. bindingResult
  5. RocketMQ-单条消息大小上限
  6. Google Analytics API V4(谷歌统计实战)
  7. 工作篇之---PDF生成盖章
  8. 基于Harry Potter的数据可视化
  9. 为什么宿醉那么缺水_坚决应对云的宿醉
  10. java Map根据Value获取key