华为机试 - 数字涂色
目录
题目描述
输入描述
输出描述
用例
题目解析
算法源码
题目描述
疫情过后,希望小学终于又重新开学了,三年二班开学第一天的任务是将后面的黑板报重新制作。
黑板上已经写上了N个正整数,同学们需要给这每个数分别上一种颜色。
为了让黑板报既美观又有学习意义,老师要求同种颜色的所有数都可以被这种颜色中最小的那个数整除。
现在请你帮帮小朋友们,算算最少需要多少种颜色才能给这N个数进行上色。
输入描述
第一行有一个正整数N,其中。
第二行有N个int型数(保证输入数据在[1,100]范围中),表示黑板上各个正整数的值。
输出描述
输出只有一个整数,为最少需要的颜色种数。
用例
输入 |
|
输出 | 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;
}
华为机试 - 数字涂色相关推荐
- 华为机试——数字颠倒
题目描述 描述: 输入一个整数,将这个整数以字符串的形式逆序输出 程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001 输入描述: 输入一个int整数 输出描述: 将 ...
- 【华为OD机试真题 C++】数字涂色 【2022 Q4 | 100分】
■ 题目描述 [数字涂色] 疫情过后,希望小学终于又重新开学了,三年二班开学第一天的任务是将后面的黑板报重新制作. 黑板上已经写上了N个正整数,同学们需要给这每个数分别上一种颜色. 为了让黑板报既美观 ...
- 华为机试(JAVA)真题Od【A卷+B卷】
各语言题库: [Python+JS+Java合集][超值优惠]:Py/JS/Java合集 [Python]:Python真题题库 [JavaScript]:JavaScript真题题库 [Java]: ...
- 华为机试(Python)真题Od【A卷+B卷】
各语言题库: [Python+JS+Java合集][超值优惠]:Py/JS/Java合集 [Python]:Python真题题库 [JavaScript]:JavaScript真题题库 [Java]: ...
- 【华为机试真题Java】从入门到入职-真题列表导读
写在前面 本专栏有100+道题(持续更新中),都是往期的HW机试真题,根据过往同学的经验基本都会考到原题.大家有什么不懂的都可以留言. 华为机试有三道题目,第一道和第二道属于简单或中等题,分值为100 ...
- 【华为机试真题 Python实现】2022年4、5月高频机试题
文章目录 2022年4.5月高频机试题 机试必须要会的函数 输入输出处理 for 循环 通过下标访问元素 直接迭代访问元素 同时访问下标和元素 while 循环 字符ASSIC码转换 进制转换 绝对值 ...
- 【华为机试】死记硬背没思路?一般人我劝你还是算了吧
大家好,我是哪吒. 五月份之前,如果你参加华为OD机试,收到的应该是2022Q4或2023Q1,这两个都是A卷题. 5月10日之后,很多小伙伴收到的是B卷,那么恭喜你看到本文了,抓紧刷题吧.B卷新题库 ...
- 华为机试真题分类汇总
1. 字符串 类别 题目 知识点 题目分值 / 难度 字符串 [华为机试真题 JAVA]TLV解析Ⅰ-100 字符串分隔.拼接.搜索 100/中等 字符串 [华为机试真题 JAVA]寻找相同子串-10 ...
- 【华为机试 Python实现】华为机试题集合(已更新171篇)
文章目录 新手指引 数据结构基础 华为机试真题系列 牛客网华为机试系列 Python 八股文系列 <华为机试真题详解>专栏定价99.9 包含 <华为机试真题>的所有题目. 包含 ...
- 牛客网–华为机试在线训练9:提取不重复的数
牛客网–华为机试在线训练9:提取不重复的数 题目描述 输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数. 输入描述: 输入一个int型整数 输出描述: 按照从右向左的阅读顺 ...
最新文章
- 独家 | 神策 2019 数据驱动大会现场「视频+PPT」合集
- mysql中如何卸载插件_Eclipse中如何卸载插件
- linux pe大小,lvm中的pe默认是4M 最大能支持多大 1T?2T
- springMVC学习(7)-springMVC校验
- wss3.0 对文档库的一些操作
- Null pointer access: The variable number can only be null at this location。 错误解决
- C语言输出大写金额,编程实现,输入一个人民币小写金额值,转化为大写金额值输出。先实现基本功能...
- 我爱淘冲刺阶段站立会议每天任务4
- 工业元宇宙的价值和发展
- 邂逅APP + 网站平台的产品设想
- 计算机系统结构知识总结,计算机基础知识总结
- 欧氏距离与马氏距离的优缺点是什么?
- nrf52 iic使用
- Davinci学习-Dem
- Android SwipeLayout实现界面滑动布局
- 模式先行区块链商城将颠覆传统商城
- 【C语言】!!是什么意思?
- 更改office安装的默认路径
- [一般问题] s60 3rd 模拟器无法启动(转)
- CSS画实心三角形【格智网络科技 面试题】