华为od机试c卷&d卷
文章平均质量分 57
我不会起名字呀
这个作者很懒,什么都没留下…
展开
-
华为OD机试C卷(100分)-用连续自然数之和来表达整数(c语言)
如果有多种表达式,输出要求为:自然数个数最少的表达式优先输出,每个表达式中按自然数递增的顺序输出,具体的格式参见样例。在每个测试数据结束时,输出一行”Result:X”,其中X是最终的表达式个数。给定一个整数,计算该整数有几种连续自然数之和的表达式,且打印出每种表达式。整数 9 有三种表示方法,第1个表达式只有1个自然数,最先输出,每个表达式中的自然数都是按递增次序输出的。第2个表达式有2个自然数,第2次序输出,第3个表达式有3个自然数,最后输出。该整数的所有表达式和表达式的个数。数字与符号之间无空格。原创 2024-06-22 07:45:00 · 115 阅读 · 0 评论 -
华为OD机试C卷(100分)-机器人搬砖(C语言)
如果只有一个仓库一堆砖,那么这堆砖就可以平分到8小时内搬,这样才能保证每小时搬最少的砖,消耗最少的能量,即每小时可以充最少的能量。机器人每小时能搬砖的数量取决于有多少能量格,机器人一个小时中只能在一个仓库中搬砖,机器人的能量格只在这一个小时有效,为使得机器人损耗最小化,应尽量减小每次补充的能量格数。如果mid能量块可以满足8小时内搬完所有仓库,那么mid就是一个可能解,但不一定是最优解,此时我们应该尝试充更少的能量,即缩小k的右边界范围到 = mid - 1。机器人每小时补充能量格只在这一个小时中有效;原创 2024-06-20 14:15:00 · 477 阅读 · 0 评论 -
华为OD机试C卷(100分)-多段线数据压缩(C语言)
因此,我们需要对这种向量做简化,方便后续相同方向的比较,即将(3,-3)简化为(1,-1),字面上看,其实就是横坐标、纵坐标都除以3,那么base=3该如何求解呢?上图中的多线段可以用下面的坐标串表示:(2,8),(3,7),(3,6),(3,5),(4,4),(5,3),(6,2),(7,3),(8,4),(7,5)。当然还有可能出现这样的情况,比如A坐标(3,5),B坐标(6,2),此时A→B向量坐标为(3, -3)运动,指的是从点A到点B,而运动的方向,自然是点A到点B的方向。原创 2024-06-21 08:00:00 · 283 阅读 · 0 评论 -
华为OD机试C卷(100分)-CPU算力分配(C语言)
其中 sumA, sumB 是已知的,因此,我们可以遍历A组所有元素a,计算出b= a - (sumA - sumB)/2,看B组中是否存在对应b,若存在,则a b就是题解。现有两组服务器A和B,每组有多个算力不同的CPU,其中 A[i] 是 A 组第 i 个CPU的运算能力,B[i] 是 B组 第 i 个CPU的运算能力。说明 从A组中选出算力为1的CPU,与B组中算力为2的进行交换,使两组服务器的算力都等于3。求两组服务器中,用于交换的CPU的算力,并且要求从A组服务器中选出的CPU,算力尽可能小。原创 2024-06-20 08:30:00 · 358 阅读 · 0 评论 -
华为OD机试C卷(100分)-灰度图存储(C语言)
如上图是,定义了一个10*10长度的一维数组,然后按顺序填充指定数量个灰阶值,最后要找的(3,4)二维坐标的灰阶值,对应到一维坐标为 3 * 列数 + 4,即 3 * 10 + 4 = 34 索引位置的灰阶值。黑白图像常采用灰度图的方式存储,即图像的每个像素填充一个灰色阶段值,256阶灰图是一个灰阶值取值范围为 0~255 的灰阶矩阵,0表示全黑,255表示全白,范围内的其他值表示不同的灰度。系统保证输入的像素坐标是合法的,不会出现不在矩阵中的像素。输出数据表示的灰阶矩阵的指定像素的灰阶值。原创 2024-06-19 16:35:44 · 453 阅读 · 0 评论 -
华为OD机试C卷(100分)-攀登者1
例如:[0,1,2,4,3,1,0,0,1,2,3,1,2,1,0],代表如下图所示的地图,地图中有两个山脉位置分别为 1,2,3,4,5 和 8,9,10,11,12,13,最高峰高度分别为 4,3。最高峰位置分别为3,10。地图表示为一维数组,数组的索引代表水平位置,数组的元素代表相对海拔高度。一个山脉可能有多座山峰(高度大于相邻位置的高度,或在地图边界且高度大于相邻的高度)。本题考试时为核心代码模式,非ACM模式,即无需自己解析输入数据。输入 0,1,4,3,1,0,0,1,2,3,1,2,1,0。原创 2024-06-19 08:15:00 · 588 阅读 · 0 评论 -
华为OD机试C卷(100分)-围棋的气(C语言)
因此,我们只需要遍历19*19的棋盘中每一个位置,检查对应位置是否有棋子,若没有棋子,则检查其上下左右四个位置是否存在黑棋、白棋,若存在则对应颜色的棋子的气数+1,需要注意的是,一个位置只能产生一个气,因此如果该位置的上下左右位置有多个黑棋,也只能为黑棋加一个气,白棋同理。所有同色棋子的气之和叫做该色棋子的气,需要注意的是,同色棋子重合的气点,对于该颜色棋子来说,只能计算一次气,比如下图中,黑棋一共4口气,而不是5口气,因为黑1和黑2中间红色三角标出来的气是两个黑棋共有的,对于黑棋整体来说只能算一个气。原创 2024-06-18 16:30:00 · 439 阅读 · 0 评论 -
华为OD机试C卷(100分)-小明的幸运数(C语言)
本题应该没有啥异常情况,但是输入里面给了给个入参的范围限制,因此我做了对输入参数范围的校验,如果不满足,则输出异常码:12345。总共2个指令,幸运数为1,按照指令行进,依次如下游戏开始前,站在坐标轴原点,此时坐标值为0;如果幸运数是0,且存在指令为0的情况,那么此时小明是行进步数是+1,还是-1,还是保持不动?指令为-5,正好等于幸运数,后退5+1=6步,此时坐标值为-6;指令为1,正好等于幸运数,前进1+1=2步,此时坐标值为-3;本题应该只是逻辑模拟题。指令为0,既不前进,也不后退,此时坐标值为1;原创 2024-06-18 07:45:00 · 332 阅读 · 0 评论 -
华为OD机试C卷(100分)-找座位(C语言)
现在给出一排观众座位分布图,座位中存在已落座的观众,请计算出,在不移动现有观众座位的情况下,最多还能坐下多少名观众。在一个大型体育场内举办了一场大型活动,由于疫情防控的需要,要求每位观众的必须间隔至少一个空位才允许落座。一个数组,用来标识某一排座位中,每个座位是否已经坐人。0表示该座位没有坐人,1表示该座位已经坐人。整数,在不移动现有观众座位的情况下,最多还能坐下多少名观众。1 ≤ 数组长度 ≤ 10000。原创 2024-06-17 21:00:00 · 495 阅读 · 0 评论 -
华为OD机试C卷(100分)-绘图机器(C语言)
期间可以通过指令在纵坐标轴方向进行偏移,offsetY为正数表示正向偏移,为负数表示负向偏移。绘图机器的绘图笔初始位置在原点(0,0)机器启动后按照以下规则来进行绘制直线。一个整数表示计算得到的面积 用例保证结果范围在0到4294967295之内。请计算绘制的直线和横坐标轴以及x=E的直线组成的图形面积。接下来N行 每行两个整数表示一条绘制指令x offsetY。尝试沿着横线坐标正向绘制直线直到给定的终点E。给定的横坐标终点值E 以及若干条绘制指令,表示有N条指令,机器运行的横坐标终点值E。原创 2024-06-17 11:00:00 · 381 阅读 · 0 评论 -
华为OD机试C卷(100分)-螺旋数字矩阵(C)/LeetCode59.螺旋矩阵II
给出数字个数 n (0 < n ≤ 999)和行数 m(0 < m ≤ 999),从左上角的 1 开始,按照顺时针螺旋向内写方式,依次写出2,3,…,n,最终形成一个 m 行矩阵。给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix。疫情期间,小明隔离在家,百无聊赖,在纸上写数字玩。输出:[[1,2,3],[8,9,4],[7,6,5]]说明 3个数字写5行,只有一列,数字不够用*号填充。两个整数,空格隔开,依次表示 n、m。原创 2024-06-17 00:50:52 · 443 阅读 · 0 评论 -
华为OD机试C卷(100分)- 手机App防沉迷系统(C语言)
注册使用时段时,如果高优先级的App时间和低优先级的时段有冲突,则系统会自动注销低优先级的时段,如果App的优先级相同,则后添加的App不能注册。2.2. App_registering 的优先级不高于(≤)App_registered,则App_registering不能注册,即终止后续比较。请编程实现,根据输入数据注册App,并根据输入的时间点,返回时间点使用的App名称,如果该时间点没有注册任何App,请返回字符串“NA”。这样两个App的时段比较,其实判断两个区间是否有交集,假设两个时段分别为。原创 2024-06-16 17:36:09 · 923 阅读 · 0 评论 -
华为OD机试C卷(100分)-求字符串中所有整数的最小和(C语言)
需要注意的是,当c == ‘-’,也需要注意出现 “-34-40” 这种情况,即 c == ‘-’,也需要先判断isNegative == true,则需要将negative容器中内容拼接,然后转化为负数合入结果,ans -= parseInt(negative.join(“”)),完成后,将isNeagtive = false,并且清空negative容器。比如1234的最小值是多少,那肯定是1+2+3+4,即每位都是一个独立数,且都是一个小于10的数,它们之和就是最小的。负数字符串的最小值如何计算?原创 2024-06-16 17:34:15 · 216 阅读 · 0 评论 -
华为OD机试C卷(100分)-最长子字符串的长度(一)
如果 ‘o’ 为奇数个,由于s是环形的,因此只要任选环中任意一个’o’解开(删除),剩下的就是含有偶数个 ‘o’ 的子串,该子串长度为 s.length - 1。说明 最长子字符串"oxdolxl",由于是首尾连接一起的,所以最后一个’x’和开头的’l’是连接在一起的,此字符串包含2个’o’给你一个字符串 s,首尾相连成一个环形,请你在环中找出 ‘o’ 字符出现了偶数次最长子字符串的长度。如果 ‘o’ 为偶数个,则s本身就是一个含有偶数个’o’的子字符串,结果输出s.length。输入 looxdolx。原创 2024-06-16 17:34:01 · 305 阅读 · 0 评论 -
华为OD机试C卷(100分)-掌握的单词个数(C语言)
本题可以分别统计出chars和word中各字符的数量,然后遍历word每个字符c,比较word和chars中统计的c字符数量,如果word的c数量超过了chars的c数量,那么就就将超出数量计入diff中。’的数量 >= diff,那么说明chars可以使用万能字符补足不同部分,即可以学会word。” 可以当作 “a” 等字母。假如可以用 chars 中的字母拼写出 words 中的某个“单词”(字符串),那么我们就认为你掌握了这个单词。注意:每次拼写时,chars 中的每个字母和万能字符都只能使用一次。原创 2024-06-16 17:33:46 · 246 阅读 · 0 评论 -
华为OD机试C卷(100分)-API集群负载统计(C语言)
某个产品的RESTful API集合部署在服务器集群的多个节点上,近期对客户端访问日志进行了采集,需要统计各个API的访问频次,根据热点信息在服务器节点之间做负载均衡,现在需要实现热点信息统计查询功能。RESTful API是由多个层级构成,层级之间使用 / 连接,如 /A/B/C/D 这个地址,A属于第一级,B属于第二级,C属于第三级,D属于第四级。接下来N行,每一行为一个RESTful API的URL地址,约束地址中仅包含英文字母和连接符 / ,最大层级为10,每层级字符串最大长度为10。原创 2024-06-16 17:33:20 · 169 阅读 · 0 评论 -
华为OD机试C卷(100分)-英文输入法(C语言)
说明 从用户已输入英文语句”The furthestdistance in the world, Is not between life and death, But when I stand in frontof you, Yet you dont know that I love you.”中提炼出的单词,符合“f”作为前缀的,有“furthest”和“front”,按字典序排序并在单词间添加空格后输出,结果为“front furthest”。如果联想不到,请输出用户输入的单词前缀。原创 2024-06-16 17:32:48 · 268 阅读 · 0 评论 -
华为OD机试C卷(100分)-字符串变换最小字符串(C语言)
给定一个字符串s,最多只能进行一次变换,返回变换后能得到的最小字符串(按照字典序进行比较)。说明 abcdef已经是最小字符串,不需要交换。变换规则:交换字符串中任意两个不同位置的字符。说明 a和b进行位置交换,可以得到最小字符串。按照要求进行变换得到的最小字符串。一串小写字母组成的字符串s。s是都是小写字符组成。原创 2024-06-16 17:00:26 · 151 阅读 · 0 评论 -
华为OD机试C卷(100分)-最大N个数与最小N个数的和(C语言)
给定一个数组,编写一个函数来计算它的最大N个数与最小N个数的和。你需要对数组进行去重。说明 最大2个数[100,95],最小2个数[83,64], 输出为342。说明 最大2个数[4,3],最小2个数[3,2], 有重叠输出为-1。最大N个数与最小N个数不能有重叠,如有重叠,输入非法返回-1。第三行输入N,N表达需要计算的最大、最小N个数。数组中数字范围[0, 1000]第一行输入M, M标识数组大小。第二行输入M个数,标识数组内容。输出最大N个数与最小N个数的和。原创 2024-06-16 14:02:22 · 202 阅读 · 0 评论 -
华为OD机试C卷(100分)-字符串筛选排序(C语言)
根据ASCII码值排序前4个字母为AABB由于B重复则只取B的第一个最小位置索引6。k如果大于字符串长度则输出最大ASCII码值的字母所在字符串的位置索引。k如果大于字符串长度则输出最大ASCII码值的字母所在字符串的位置索引。如果第k个最小ASCII码值的字母存在重复 则输出该字母的最小位置索引。输出该字母所在字符串中的位置索引(字符串的第一个位置索引为0)输出字符串中第k个最小ASCII码值的字母所在字符串的位置索引。F在字符串中位置索引为5(0为字符串的第一个字母位置索引)输入 AbCdeFG。原创 2024-06-16 13:55:05 · 264 阅读 · 0 评论 -
华为OD机试C卷(100分)-字符串分割(二)(C语言)
给定一个非空字符串S,其被N个‘-’分隔成N+1的子串,给定正整数K,要求除第一个子串外,其余的子串每K个字符组成新的子串,并用‘-’分隔。对于新组成的每一个子串,如果它含有的小写字母比大写字母多,则将这个子串的所有大写字母转换为小写字母;@中没有字母,连起来即12abc-abc-ABC-4aB-@子串为12abc、abCABc、4aB@,第一个子串保留,子串为12abc、abCABc、4aB@,第一个子串保留,后面的子串每3个字符一组为abC、ABc、4aB、@,abC中小写字母较多,转换为abc,原创 2024-06-16 13:49:52 · 373 阅读 · 0 评论 -
华为OD机试C卷(100分)-连续字母长度(C语言)
给定一个字符串,只包含大写字母,求在包含同一字母的子串中,长度第 k 长的子串的长度,相同字母只取最长的那个子串。说明 三个子串长度均为1,所以此时k = 1,k=2,k=3这三种情况均输出1。第二多的还是A,两次,但A已经存在最大连续次数三次,故不考虑;第二多的是H,3次,但是H已经存在4个连续的,故不考虑;说明 只含有3个包含同一字母的子串,小于k,输出-1。同一字母连续出现的最多的是A和H,四次;输出连续出现次数第k多的字母的次数。同一字母连续出现的最多的是A,三次;下个最长子串是B,所以输出1。原创 2024-06-16 13:46:09 · 257 阅读 · 0 评论 -
华为OD机试C卷(100分)-整型数组按个位值排序(C语言)
给定一个非空数组(列表),其元素数据类型为整型,请按照数组元素十进制最低位从小到大进行排序,十进制最低位相同的元素,相对位置保持不变。给定一个非空数组,其元素数据类型为32位有符号整数,数组长度[1, 1000]输入 1,2,5,-21,22,11,55,-101,42,8,7,32。输出 1,-21,11,-101,2,22,42,32,5,55,7,8。当数组元素为负值时,十进制最低位等同于去除符号位后对应十进制值最低位。原创 2024-06-16 12:41:51 · 453 阅读 · 0 评论 -
华为OD机试C卷(100分)-按身高和体重排队(C语言)
某学校举行运动会,学生们按编号(1、2、3…n)进行标识,现需要按照身高由低到高排列,对身高相同的人,按体重由轻到重排列;对于身高体重都相同的人,维持原有的编号顺序关系。第一个序列中的数值代表身高,第二个序列中的数值代表体重。说明 1和3的身高体重都相同,需要按照原有位置关系让1排在3前面,而不是3 1 2。输出的第一个数字2表示此人原始编号为2,即身高为100,体重为30的这个人。由于他和编号为1的人身高一样,但体重更轻,因此要排在1前面。排列结果,每个数值都是原始序列中的学生编号,编号从1开始。原创 2024-06-16 12:37:07 · 346 阅读 · 0 评论