华为OD机考注意事项

简介

题目介绍

题目描述-1 - [多数组合并]

参考 笔试题1——多数组合并 基于这个题目进行变化

现在有多组整数数组,需要将他们合并成一个新的数组。合并规则,从每个数组里按顺序取出固定长度的内容合并到新的数组中,取完的内容会删除掉,如果该行不足固定长度或者已经为空,则直接取出剩余部分的内容放到新的数组中,继续下一行。

输入描述:

  1. 第一行是每次读取的固定长度, 0 < 长度 < 10;
  2. 第二行是整数数组的数目,0 < 数目 < 1000
  3. 第3-n行是需要合并的数组,不同的数组用回车换行分隔,数组内部用逗号分隔
    最大不超过100个元素

输出描述:

输出一个新的数组,用逗号分隔

示例1

3
2
2,5,6,7,9,5,7
1,7,4,3,4

输出 :

2,5,6,1,7,4,7,9,5,3,4,7

该题目网上有类似的题目,在Palmer的协助下,得到正确的解决思路

AC 这道题目大概又30min的时间

题目描述-2 - [高矮个子排队]

现在有一队小朋友,他们高矮不同,我们以正整数数组表示这一队小朋友的身高,如数组{5,3,1,2,3}。

我们现在希望小朋友排队,以“高”“矮”“高”“矮”顺序排列,每一个“高”位置的小朋友要比相邻的位置高或者相等;每一个“矮”位置的小朋友要比相邻的位置矮或者相等;

要求小朋友们移动的距离和最小,第一个从“高”位开始排,输出最小移动距离即可。

例如,在示范小队{5,3,1,2,3}中,{5, 1, 3, 2, 3}是排序结果。{5, 2, 3, 1, 3} 虽然也满足“高”“矮”“高”“矮”顺序排列,但小朋友们的移动距离大,所以不是最优结果。

移动距离的定义如下所示:

第二位小朋友移到第三位小朋友后面,移动距离为1,若移动到第四位小朋友后面,移动距离为2;


这道题目网上虽然有,但是没有解决方案,只有Java解题过程,无奈只能根据转换为C++的实现过程,在Palmer的协助下AC了这道题目,但是跑测试用例的时候只跑通了95%,并不是100%,由于时间的问题,只能下一个题目,这道题目至少花费有60min的时间

另外还有处理一行多个数据的输入这里需要注意下处理逻辑

题目描述-3 - [连续子区间和] 中等难度

题目描述

给定一个含有N个正整数的数组,求出有多少个连续区间(包括单个正整数),它们的和大于等于x.

网上搜索了下,牛客网的原题连续子区间和 中等难度

Palmer 跑了代码,但是实际跑测试的时候,发现只通过了98%用例,而且出现了崩溃的问题,系统提示数组越界或者递归调用深度太多

这三个题目的代码已经上传到gitee


机试经验

一直想参加下华为的机考看下难度如何,这次终于如愿了,这周末一直在准备华为的机考复习,但是有点不聚焦的感觉,考试前一直在看动态规划的题目,机试开始前一直在看各种注意事项,晚上8点正式开始机试,准备好各种环境

  1. 时间150min,三道题目,前两道题目100分,最后一道题目200分,150分为通过
  2. 通过牛客网来机考,进入之前会测试各种环境,包括需要扫描小程序进行监控
  3. 开始做题目之前会有2道示例题说明如何处理多行的输入与输出
  4. 第一道题看起来还是比较简单的,网上也有类似的题目,但是有变化,考试前特意找了操大师和Palmer协助,做题之前整个人是蒙的,完全没有状态,都是Palmer一直协助解决的
  5. 第二道题网上有Java的解决过程,但是没有C++的解决方案,需要Java转C++,但是有点蒙,最终Palmer提供了解决方案,技术上还是可以的
  6. 第三道题牛客网的原题,提供了解题的过程
  7. 虽然是机试,但是是在线的,自己并没有更多的思考,反而是依赖与场外的协助进行答题,这样的过程是不太认可的,无奈自己的技术太差了,刷题量还是太好了,需要尽快的刷题 刷题 刷题

图片说明

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务