不太灵光的程序员
机试题专栏 题目来自牛客平台机考同学的机试分享,题目描述信息可能记录不完整,题解无法保证通过率,只提供结题思路,注意!注意!!不要直接使用博主代码进行机考!
展开
-
【华为机试真题详解】小兔子繁殖详解
《华为机试真题》专栏含牛客网华为专栏、华为面经试题、华为OD机试真题。如果您在准备华为的面试,期间有想了解的可以私信我,我会尽可能帮您解答,也可以给您一些建议!本文解法非最优解(即非性能最优)。看过上一篇文章的同学可能也发现了,递归函数是求解动态规划问题的一个很好的方法,那我们要如何写一个递归函数呢?如果一个函数在执行过程中,直接或者间接的调用自己,我们称之为递归函数。递归的应用场景,链表操作、二叉树操作、排列组合问题和动态规划问题等,他们有一个特点就是随着递归深度的增加,问题规模在不断减小。比如我们在学校原创 2022-06-24 01:08:10 · 3207 阅读 · 17 评论 -
【华为机试真题详解】初识动态规划(斐波那契数列)
《华为机试真题》专栏含牛客网华为专栏、华为面经试题、华为OD机试真题。如果您在准备华为的面试,期间有想了解的可以私信我,我会尽可能帮您解答,也可以给您一些建议!本文解法非最优解(即非性能最优)。动态规划(Dynamic Programming,DP)是运筹学的一个分支,是求解决策过程最优化的过程。动态规划的题目比较多,比如:最长递增子序列问题、最短路径问题、背包问题、资源分配问题等。动态规划并不是万能的,适用动态规划的问题必须满足最优子结构和无后效性。下面通过斐波那契数列问题详解,了解一下什么是状态转移方程原创 2022-06-23 00:43:47 · 2055 阅读 · 2 评论 -
【华为机试真题详解 Python实现】异常的打卡记录【2023 Q1】
华为机试真题详解》专栏含牛客网华为专栏、华为面经试题、华为OD机试真题。如果您在准备华为的面试,期间有想了解的可以私信我,我会尽可能帮您解答,也可以给您一些建议!本文解法非最优解(即非性能最优),不能保证通过率。特别提醒!!!!注意1:机试为ACM 模式你的代码需要处理输入输出,input接收输入、print格式化输出注意2:机试按通过率记分复杂题目可以考虑暴力破解,再逐步优化,不是运行超时就无法得分,如下,提交结果运行超时,但用例通过率>92.31% , 如果是100分的题目,可以得92.3分。原创 2023-04-11 00:54:51 · 1145 阅读 · 3 评论 -
【算法基础】并查集
操作中,我们首先需要找到x和y所在的集合的根节点px和py,以及它们到根节点路径上的权值wx和wy。操作中,如果当前节点不是根节点,就递归地寻找其根节点,并将路径上的每个节点的权值累加到当前节点上。函数中,如果找到了x的父节点不是x,就将x的父节点改为它的根节点,这样就将路径上的所有节点都指向根节点,从而实现路径压缩。在这个实现中,我们使用两个数组分别记录每个元素的父节点和秩(即树的高度),初始时每个元素的父节点都是它自己,秩为0。操作先查找x和y所在的集合的根节点,如果它们已经在同一个集合中,直接返回;原创 2023-04-10 21:58:49 · 740 阅读 · 0 评论 -
【算法基础】算法复杂度
时间复杂度通常用大O符号表示,具体来说,如果一个算法的时间复杂度为O(f(n)),那么它执行所需的时间最多是f(n)的某个常数倍,其中n是输入规模。空间复杂度通常也用大O符号表示,具体来说,如果一个算法的空间复杂度为O(f(n)),那么它执行所需的额外空间最多是f(n)的某个常数倍,其中n是输入规模。其中,每次递归调用需要执行两次递归操作,因此时间复杂度可以用递归式表示为T(n) = T(n-1) + T(n-2) + O(1),解递归式可以得到时间复杂度为O(2^n)。原创 2023-04-10 21:52:46 · 666 阅读 · 0 评论 -
【华为机试真题详解 Python实现】新员工座位安排系统【2023 Q1 | 100分】
工位由序列 F1,F2...Fn,组成,Fi 值为 0、1 或 2,其中 0 代表空置,1 代表有人,2 代表障碍物。1. 某一空位的友好度为左右连续老员工工数之和;2. 为方便新员工学习求助,优先安排友好度高的空位;3. 给出工位序列,求所有空位中友好度的最大值。原创 2023-03-28 23:04:28 · 1751 阅读 · 3 评论 -
【华为机试真题详解 Python实现】统计差异值大于相似值二元组个数【2023 Q1 | 100分】
题目描述: 对于任意两个正整数 A 和 B,定义它们之间的差异值和相似值:差异值: A、B 转换成二进制后,对于二进制的每一位,对应位置的 bit 值不相同则为 1,否则为0;相似值: A、B 转换成二进制后,对于二进制的每一位,对应位置的 bit 值都为 1则为 1,否则为0;现在有 n 个正整数 A 到 A(n-1),问有多少对(i,j)(0原创 2023-03-20 14:32:34 · 1418 阅读 · 0 评论 -
【华为机试真题详解 Python实现】去除多余空格【2023 Q1 | 100分】
华为机试真题详解》专栏含牛客网华为专栏、华为面经试题、华为OD机试真题。如果您在准备华为的面试,期间有想了解的可以私信我,我会尽可能帮您解答,也可以给您一些建议!本文解法非最优解(即非性能最优),不能保证通过率。特别提醒!!!!注意1:机试为ACM 模式你的代码需要处理输入输出,input接收输入、print格式化输出注意2:机试按通过率记分复杂题目可以考虑暴力破解,再逐步优化,不是运行超时就无法得分,如下,提交结果运行超时,但用例通过率>92.31% , 如果是100分的题目,可以得92.3分。原创 2023-03-15 16:19:04 · 1715 阅读 · 0 评论 -
【华为机试真题详解 Python实现】最差产品奖【2023 Q1 | 100分】
华为机试真题详解》专栏含牛客网华为专栏、华为面经试题、华为OD机试真题。# 题目描述A公司准备对他下面的 N 个产品评选最差奖,评选的方式是首先对每个产品进行评分,然后根据评分区间计算相邻几个产品中最差的产品。评选的标准是依次找到从当前产品开始前 个产品中最差的产品,请给出最差产品的评分序列。# 输入描述第一行,数字 M,表示评分区间的长度,取值范围是 0 < M < 10000;第二行,产品的评分序列,比如 `12,3,8,6,5` 产品数量N 范围是 -10000 < N原创 2023-03-15 15:05:18 · 884 阅读 · 0 评论 -
【华为机试真题详解 Python实现】数字加减游戏【2023 Q1 | 100分】
# 题目描述小明在玩一个数字加减游戏,只使用加法或者减法,将一个数字 s 变成数字 t 每个回合,小明可以用当前的数字加上或减去一个数字。现在有两种数字可以用来加减,分别为 a,b(a!=b),其中b 没有使用次数限制。请问小明最少可以用多少次 a ,才能将数字 s 变成数字 t 。题目保证数字 s 一定能变成数字 t 。# 输入描述输入的唯一一行包含四个正整数 `s`,`t`,`a`,`b` (1原创 2023-03-14 08:04:39 · 670 阅读 · 0 评论 -
【华为机试真题详解 Python实现】求最大数字【2023 Q1 | 100分】
给定一个由纯数字组成以字符串表示的数值,现要求字符串中的每个数字最多只能出现 2次,超过的需要进行删除,删除某个重复的数字后,其它数字相对位置保持不变。华为机试真题详解》专栏含牛客网华为专栏、华为面经试题、华为OD机试真题。如果您在准备华为的面试,期间有想了解的可以私信我,我会尽可能帮您解答,也可以给您一些建议!本文解法非最优解(即非性能最优),不能保证通过率。特别提醒!!!!注意1:机试为ACM 模式你的代码需要处理输入输出,input接收输入、print格式化输出注意2:机试按通过率记分。原创 2023-03-13 17:19:12 · 1087 阅读 · 1 评论 -
【华为机试真题详解 Python实现】整理扑克牌【2023 Q1 | 100分】
给定一组数字,表示扑克牌的牌面数字,忽略扑克牌的花色,请安如下规则对这一组扑克牌进行整理。步骤一:对扑克牌进行分组,规则如下1. 当牌面数字相同张数大于等于 4 时,组合牌为 炸弹;2. 三张相同牌面数字+两张 相同牌面数字,且三张牌与两张牌不相同时,组合牌为 葫芦,3. 三张相同牌面数字 ,组合牌为 三张4. 两张相同牌面数字,组合牌为 对子5. 剩余没有相同的牌则为 单张步骤二:对上述组合牌进行由大到小排列,规则如下1. 不同类型组合牌之间由大到小排列规则:炸弹 > 葫芦 >原创 2023-03-13 09:58:30 · 982 阅读 · 0 评论 -
【华为机试真题详解 Python实现】找数字【2023 Q1 | 100分】
给一个二维数组 nums ,对于每一个元素 un[i] ,找出距离最近的且值相等的元素,输出横纵坐标差值的绝对值之和,如果没有等值元素,则输出 -1。例如:输入数组 nums 为```python0 35 42232 5 7 8 32 5 4 2 4```对于 num[0][0] = ,不存在相等的值;对于 num[0][1] = 3,存在一个相等的值,最近的坐标为 num[1][4],最小距离为 4;对于 num[0][2] = 5,存在两个相等的值,最近的坐标为 num[1][原创 2023-03-10 16:27:03 · 1013 阅读 · 0 评论 -
【华为机试真题详解 Python实现】分奖金【2023 Q1 | 100分】
公司老板做了一笔大生意,想要给每位员工分配一些奖金,想通过游戏的方式来决定每个人分多少钱。按照员工的工号顺序,每个人随机抽取一个数字。按照工号的顺序往后排列,遇到第一个数字比自己数字大的,那么,前面的员工就可以获得 距离 * 数字差值的奖金。如果遇不到比自己数字大的,就给自己分配 随机数 数量的奖金例如:按照工号顺序的随机数字是: 2,10,3 。那么第2个员工的数字10比第1个员工的数字2大所以,第1个员工可以获得1 * (10 - 2) = 8;第2个员工后面没有比他数字更大的员工,所以,他获原创 2023-03-09 15:57:21 · 917 阅读 · 0 评论 -
【华为机试真题详解 Python实现】最小施肥机能效【2023 Q1 | 100分】
# 题目描述某农场主管理了一大片果园,fields[i] 表示不同果林的面积,单位: (m,现在要为所有的果林施肥且必须在n天之内完成,否则影响收成。小布是果林的工作人员,他每次选择一片果林进行施肥,且一片果林施肥完后当天不再进行施肥作业。假设施肥机的能效为 k,单位: (m/day) ,请问至少租赁能效 k 为多少的施机才能确保不影响收成?如果无法完成施肥任务,则返回 -1。# 输入描述第一行输入为m和n,m表示 fields 中的元素个数,n 表示施肥任务必须在n天内 (含n天)完成;原创 2023-03-09 14:30:20 · 1171 阅读 · 0 评论 -
【华为机试真题详解】数组的中心位置【2022 Q4 | 100分】
华为机试真题详解 Python实现》专栏含牛客网华为专栏、华为面经试题、华为OD机试真题。给你一个整数数组nums ,请计算数组的中心位置。数组中心位置是数组的一个下标,其左侧所有元素相乘的积等于右侧所有元素相乘的积。数组第一个元素的左侧积为1,最后一个元素的右侧积为1。如果数组有多个中心位置,应该返回最靠近左边的那一个。如果数组不存在中心位置,返回-1。原创 2023-01-09 22:49:41 · 2259 阅读 · 2 评论 -
【华为机试真题详解】获得完美走位【2022 Q4 | 100分】
在第一人称射击游戏中,玩家通过键盘的 A、S、D、W 四个按键控制游戏人物分别向左、向后、向右、向前进行移动,从而完成走位。假设玩家每按动一次键盘,游戏人物会向某个方向移动一步,如果玩家在操作一定次数的键盘并且各个方向的步数相同时,此时游戏人物必定会回到原点,则称此次走位为完美走位。现给定玩家的走位(例如: ASDA) ,请通过更换其中一段连续走位的方式使得原走位能够变成一个完美走位。其中待更换的连续走位可以是相同长度的任何走位。请返回待更换的连续走位的最小可能长度,若果原走位本身是一个完美走位原创 2023-01-08 11:28:08 · 5178 阅读 · 2 评论 -
【华为机试真题详解】查找单入口空闲区域【2022 Q4 | 100分】
华为机试真题详解 Python实现》专栏含牛客网华为专栏、华为面经试题、华为OD机试真题。给定一个m * n的矩阵一,由若干字符X和O构成,X表示该处已被占据,О表示该处空闲,请找到最大的单入口空闲区域。空闲区域是由连通的О组成的区域,位于边界的О可以构成入口,单入口空闲区域即有且只有一个位于边界的О作为入口的由连通的О组成的区域。如果两个元素在水平或垂直方向相邻,则称它们是“连通”的。原创 2023-01-07 12:52:12 · 3456 阅读 · 8 评论 -
【华为机试真题详解】单词倒序【2022 Q4 | 100分】
华为机试真题详解 Python实现》专栏含牛客网华为专栏、华为面经试题、华为OD机试真题。输入单行英文句子,里面包含英文字母,空格以及,.﹖三种标点符号,请将句子内每个单词进行倒序,并输出倒序后的语句。输入字符串s,s的长度1 0原创 2023-01-06 16:45:41 · 1996 阅读 · 1 评论 -
【华为机试真题详解】打印文件【2022 Q4 | 100分】
华为机试真题详解 Python实现》专栏含牛客网华为专栏、华为面经试题、华为OD机试真题。有5台打印机打印文件,每台打印机有自己的待打印队列一。因为打印的文件内容有轻重缓急之分,所以队列中的文件有1~10不同的优先级Q,其中数字越大优先级越高。打印机会从自己的待打印队列中选择优先级最高的文件来打印。如果存在两个优先级—样的文件,则选择最早进入队列的那个文件。现在请你来模拟这5台打印机的打印过程。原创 2023-01-06 16:22:24 · 1193 阅读 · 0 评论 -
【华为机试真题详解】不含 101 的数【2022 Q4 | 100分】
华为机试真题详解 Python实现》专栏含牛客网华为专栏、华为面经试题、华为OD机试真题。小明在学习二进制时,发现了一类不含 101的数,也就是:将数字用二进制表示,不能出现 101 。现在给定一个整数区间 [l,r] ,请问这个区间包含了多少个不含 101 的数?输入的唯一一行包含两个正整数 l, r( 1 ≤ l ≤ r ≤ 10^9)。输出的唯一一行包含一个整数,表示在 [l,r] 区间内一共有几个不含 101 的数。原创 2023-01-05 22:34:33 · 3018 阅读 · 15 评论 -
【华为机试真题详解】不含 101 的数(二)【2022 Q4 | 100分】
华为机试真题详解 Python实现》专栏含牛客网华为专栏、华为面经试题、华为OD机试真题。小明在学习二进制时,发现了一类不含 101的数,也就是:将数字用二进制表示,不能出现 101 。现在给定一个整数区间 [l,r] ,请问这个区间包含了多少个不含 101 的数?输入的唯一一行包含两个正整数 l, r( 1 ≤ l ≤ r ≤ 10^9)。输出的唯一一行包含一个整数,表示在 [l,r] 区间内一共有几个不含 101 的数。原创 2023-01-06 12:53:03 · 1261 阅读 · 0 评论 -
【华为机试真题详解】信号强度【2022 Q4 | 200分】
华为机试真题详解 Python实现》专栏含牛客网华为专栏、华为面经试题、华为OD机试真题。给定一个m*n的矩阵,里面的元素只有-1和0以及唯一的正整数,也就是信号源。-1代表障碍物,会阻碍信号。每一块的信号强度都会从信号源处衰减1,向上下左右四个方向扩散。求给定位置[x,y]的信号强度是多少?# 输入描述:第一行输入为m和n,表示m行n列的矩阵;第二行输入为矩阵元素;第三行输入为待求信号强度的坐标点。原创 2023-01-04 11:53:28 · 3560 阅读 · 1 评论 -
【华为机试真题详解】货币单位换算【2022 Q4 | 100分】
华为机试真题详解 Python实现》专栏含牛客网华为专栏、华为面经试题、华为OD机试真题。记账本上记录了若干条多国货币金额,需要转换成人民币分(fen),汇总后输出。每行记录一条金额,金额带有货币单位,格式为数字+单位,可能是单独元,或者单独分,或者元与分的组合。要求将这些货币全部换算成人民币分(fen)后进行汇总,汇总结果仅保留整数,小数部分舍弃。元和分的换算关系都是1:100,如下:原创 2022-12-26 18:15:17 · 1539 阅读 · 0 评论 -
【华为机试真题详解】开心消消乐【2022 Q4 | 100分】
华为机试真题详解 Python实现》专栏含牛客网华为专栏、华为面经试题、华为OD机试真题。给定一个N行M列的二维矩阵,矩阵中每个位置的数字取值为0或1。矩阵示例如:现需要将矩阵中所有的1进行反转为0,规则如下:1) 当点击一个1时,该1便被反转为0,同时相邻的上、下、左、右,以及左上、左下、右上、右下8 个方向的1(如果存在1)均会自动反转为0;2)进一步地,一个位置上的1被反转为0时,与其相邻的8个方向的1(如果存在1)均会自动反转为0;按照上述规则示例原创 2022-12-16 00:41:25 · 2184 阅读 · 1 评论 -
【华为机试真题详解】优选核酸检测点【2022 Q4 | 100分】
华为机试真题详解 Python实现》专栏含牛客网华为专栏、华为面经试题、华为OD机试真题。张三要去外地出差,需要做核酸,需要在指定时间点前做完核酸,请帮他找到满足条件的核酸检测点。给出一组核酸检测点的距离和每个核酸检测点当前的人数,给出张三要去做核酸的出发时间,出发时间是10分钟的倍数同时给出张三做核酸的最晚结束时间。题目中给出的距离是整数,单位是公里,时间1分钟为一基本单位。去找核酸点时,有如下的限制:1. 去往核酸点的路上,每公里距离花费时间10分钟,费用是10元;2. 核酸点每检测一个人的原创 2022-12-12 00:00:26 · 3951 阅读 · 10 评论 -
【华为机试真题详解】冗余覆盖【2022 Q4 | 100分】
华为机试真题详解 Python实现》专栏含牛客网华为专栏、华为面经试题、华为OD机试真题。给定两个字符串s1和s2和正整数K,其中s1长度为n1,s2长度为n2,在s2中选一个子串,满足:该子串长度为n1+k;该子串中包含s1中全部字母;该子串每个字母出现次数不小于s1中对应的字母。# 输入描述我们称s2以长度k冗余覆盖s1,给定s1,s2,k。# 输出描述求最左侧的s2以长度k 冗余覆盖s1的子串首个元素下标,如果没有返回-1。原创 2022-12-13 23:55:46 · 1460 阅读 · 0 评论 -
【华为机试真题详解】投篮大赛【2022 Q4 | 100分】
华为机试真题详解 Python实现》专栏含牛客网华为专栏、华为面经试题、华为OD机试真题。你现在是一场采用特殊赛制投篮大赛的记录员。这场比赛由若干回合组成,过去几回合的得分可能会影响以后几回合的得分。比赛开始时,记录是空白的。你会得到一个记录操作的字符串列表 ops,其中ops[i]是你需要记录的第i项操作。ops遵循下述规则:整数x - 表示本回合新获得分数x;“+” – 表示本回合新获得的得分是前两次得分的总和;“D” – 表示本回合新获得的得分是前一次得分的两倍;“C” – 表示本回原创 2022-12-15 01:01:03 · 1867 阅读 · 0 评论 -
【华为机试真题详解】最大报酬【2022 Q4 | 100分】
华为机试真题详解 Python实现》专栏含牛客网华为专栏、华为面经试题、华为OD机试真题。小明每周上班都会拿到自己的工作清单,工作清单内包含 n 项工作,每项工作都有对应的耗时时间(单位 h)和报酬,工作的总报酬为所有已完成工作的报酬之和,那么请你帮小明安排一下工作,保证小明在指定的工作时间内工作收入最大化。输入的第一行为两个正整数 T,n;T 代表工作时长(单位 h, 0 < T < 1000000),n 代表工作数量( 1 < n ≤ 3000)。接下来是 n 行,每行包含两个整原创 2022-12-15 01:33:38 · 1984 阅读 · 1 评论 -
【华为机试真题 Python实现】服务失效判断
《华为机试真题详解》专栏含牛客网华为专栏、华为面经试题、华为OD机试真题。某系统中有众多服务,每个服务用字符串(只包含字母和数字,长度原创 2022-10-05 00:31:59 · 859 阅读 · 0 评论 -
【华为机试真题 Python实现】找到比自己强的人数
《华为机试真题详解》专栏含牛客网华为专栏、华为面经试题、华为OD机试真题。如果您在准备华为的面试,期间有想了解的可以私信我,我会尽可能帮您解答,也可以给您一些建议!本文解法非最优解(即非性能最优),不能保证通过率。给定数组[[2,1],[3 2]],每组表示师徒关系,第一个元素是第二个元素的老师,数字代表排名,现在找出比自己强的徒弟。数据[2,1]表示排名第 2 的员工是排名第 1 员工的导师,后面的数据以此类推。原创 2022-10-09 01:24:45 · 4347 阅读 · 4 评论 -
【华为机试真题 Python实现】统计文本数量
《华为机试真题详解》专栏含牛客网华为专栏、华为面经试题、华为OD机试真题。有一个文件,包含以一定规则写作的文本,请统计文件中包含的文本数量。规则如下:1. 文本以”;”分隔,最后一条可以没有”;”,但空文本不能算语句,比如"COMMAND A;;"只能算一条语句注意,无字符/空白字符/制表符都算作”空”文本;2. 文本可以跨行,比如下面,是一条文本,而不是三条;COMMAND AANDCOMMAND B;3. 文本支持字符串,字符串为成对的单引号(')或者成对的双引号("),字符串可能出现用原创 2022-10-19 23:45:37 · 1336 阅读 · 7 评论 -
【华为机试真题 Python实现】比较两个版本号的大小
《华为机试真题详解》专栏含牛客网华为专栏、华为面经试题、华为OD机试真题。输入两个版本号 version1 和 version2,每个版本号由多个子版本号组成。子版本号之间由 “.” 隔开,由大小写字母、数字组成,并且至少有一个字符。按从左到右的顺序比较子版本号,比较规则如下:子版本号前面的0不参与比较,比如 001 和 1 是相等的。小写字母 > 大写字母 > 数字空字符和0相等,比如 1 和 1.0 相等比较结果如果 version1 > version2 ,返回 1如果 versi原创 2022-10-21 00:56:46 · 1953 阅读 · 0 评论 -
【华为机试真题 Python实现】N进制减法
《华为机试真题详解》专栏含牛客网华为专栏、华为面经试题、华为OD机试真题。主管期望你实现一个基于字符串的N机制的减法。需要对输入的两个字符串按照给定的N进制进行减法操作,输出正负符号和表示结果的字符串。三个参数。第一个参数是整数形式的进制N值,N值范围为大于等于2、小于等于35。第二个参数为被减数字符串;第三个参数为减数字符串。有效的字符包括0-9以及小写字母a-z,字符串有效字符个数最大为100个字符,另外还有结尾的\0。原创 2022-10-17 00:48:57 · 706 阅读 · 0 评论 -
【华为机试真题详解】日志首次上报最多积分【2022 Q4 | 100分】
《华为机试真题详解 Python实现》专栏含牛客网华为专栏、华为面经试题、华为OD机试真题。日志采集是运维系统的的核心组件。日志是按行生成,每行记做一条,由采集系统分批上报。如果上报太频繁,会对服务端造成压力;如果上报太晚,会降低用户的体验;如果一次上报的条数太多,会导致超时失败。为此,项目组设计了如下的上报策略:1. 每成功上报一条日志,奖励1分2. 每条日志每延迟上报1秒,扣1分3. 积累日志达到100条,必须立即上报给出日志序列,根据该规则,计算首次上报能获得的最多积分数。原创 2022-12-10 22:22:20 · 1684 阅读 · 8 评论 -
【华为机试真题 Python实现】竖直四子棋
《华为机试真题详解》专栏含牛客网华为专栏、华为面经试题、华为OD机试真题。竖直四子棋的棋盘是竖立起来的,双方轮流选择棋盘的一列下子,棋子因重力落到棋盘底部或者其他棋子之上,当一列的棋子放满时,无法再在这列上下子。一方的4个棋子横、竖或者斜方向连成一线时获胜。现给定一个棋盘和红蓝对弈双方的下子步骤,判断红方或蓝方是否在某一步获胜。下面以一个6×5的棋盘图示说明落子过程:原创 2022-10-04 15:58:41 · 647 阅读 · 0 评论 -
【华为机试真题 Python实现】最大社交距离
《华为机试真题》专栏含牛客网华为专栏、华为面经试题、华为OD机试真题。疫情期间需要大家保证一定的社交距离,公司组织开交流会议。座位一排共 N 个座位,编号分别为[0,N-1],要求员工一个接着一个进入会议室,并且可以在任何时候离开会议室。满足:每当一个员工进入时,需要坐到最大社交距离(最大化自己和其他人的距离的座位);如果有多个这样的座位,则坐到索引最小的那个座位。原创 2022-10-13 00:48:54 · 1480 阅读 · 1 评论 -
【华为机试真题 Python实现】矩阵扩散
《华为机试真题详解》专栏含牛客网华为专栏、华为面经试题、华为OD机试真题。存在一个m×n的二维数组,其成员取值范围为0或1。其中值为1的成员具备扩散性,每经过1S,将上下左右值为0的成员同化为1。二维数组的成员初始值都为0,将第[i,j]和[k,l]两个个位置上元素修改成1后,求矩阵的所有元素变为1需要多长时间。原创 2022-10-03 16:11:22 · 1007 阅读 · 0 评论 -
【华为机试真题 Python实现】图像物体的边界
《华为机试真题》专栏含牛客网华为专栏、华为面经试题、华为OD机试真题。给定一个二维数组M行N列,二维数组里的数字代表图片的像素,为了简化问题,仅包含像素1和5两种像素,每种像素代表一个物体,2个物体相邻的格子为边界,求像素1代表的物体的边界个数。像素1代表的物体的边界指与像素5相邻的像素1的格子,边界相邻的属于同一个边界,相邻需要考虑8个方向(上,下,左,右,左上,左下,右上,右下)。原创 2022-10-03 00:33:20 · 646 阅读 · 0 评论 -
【华为机试真题 Python实现】找单词
华为机试真题》专栏含牛客网华为专栏、华为面经试题、华为OD机试真题。这像是一道走迷宫的问题,只能横向或竖向行走,只能向前走,且只有一条路径;那么二维数组就是迷宫,字符串的第一个字符就是入口,字符串的最后一个字符是出口;首先我们需要确定迷宫的入口;如示例1中(0,0)点(3,3)点都为`A`,这两点比较特殊都在边缘,下一步都只有三个方向可以走,我们还需要考虑入口中间的可能,那么就有下一步四种可能;我们将路径拆分,每次只考虑下一步怎么走,我们需要判断下一步是否是边界,是否已经走过,是否满足字符串;原创 2022-10-02 10:30:20 · 1092 阅读 · 0 评论