华为OD机试凉凉记录 2021.3.26

今天搞了一波华为机试,原本在牛客上已经刷了近四五十道华为机试了,没想到还是有点难,就像课本学习的难度和考试的难度......
反正我猜凉凉
一星两个,两星一个。一星的一题case100%,一题case10%;两星的gg。

1、忘了什么题目,反正比较简单,思路就是两个循环暴利,再调个方法就完事了。兄弟们刷过一些题目基本没得问题

2、比赛射箭,提供了n比赛次数,每个选手有多次出场和射箭的机会。x选手的出场顺序,y对应的选手射箭的分数。要按照每个选手的最高三次比分之和,进行排序
(1)出场次数小于3次的不纳入排名
(2)同样分数的情况按照选手序号进行排序
输入
n:13
x: 3 3 3 4 4 5 4 6 4 5 6 6 5
y:45 34 56 93 76 65 84 82 63 77 69 79 85
输出忘了、、、
这个毫无思路,想了四十分钟我靠。瞎几把写还有10%

3、贪吃蛇算法,给定一个矩阵,里面都是字符,其中E是食物,蛇吃了长度+1,F是空白,啥也没有,H是蛇的位置,初始只占一个位置。
输入指令,让贪吃蛇移动或者转向:G前进、U往上转、D往下转、L往左转、R往右转。初始方向为左。
碰壁和碰到自己就死了。
求指令执行之后蛇的长度
输入大概是这样的:
(指令)            D    G    G
(矩阵大小)    3
(矩阵内容)   F    E    F
E    E    H
F    F    F
输出:1
(因为D往下转,然后G往前走,碰到F,空白,没事。然后G再往前走,撞墙,死了)
测试用例还有一个,但是忘了。

大概思路不知道对不对:
一个方法根据指令去判断下一步的位置,一个方法来计算当前的蛇的长度。根据下一步的位置判断 是撞墙挂了,还是吃到了东西?吃了东西长度+1,撞墙直接返回
碰自己死我觉得应该是拿一个队列去存放走过的位置,根据是否吃到东西,吃了东西不用删头元素,没吃到东西需要把头元素给出队。


xdm!!!一定要相信考试之前的提示!!!用本地idea或者啥的去写代码,tmd这牛客的在线编程一写复杂了就一堆报错
#笔试题型#
全部评论
华为已入池,建议牛客在线编程练习,需要自己写输入输出的那种,一定要学会输入输出的处理,几乎99%的公司都需要自己写输入输出。然后建议把 剑指offer 刷起来。只做华为机试不够的
3 回复
分享
发布于 2021-03-31 07:26
我也凉了吧 今天考的 case 85 100 0
1 回复
分享
发布于 2021-03-27 17:02
滴滴
校招火热招聘中
官网直投
最近题有些难度了
1 回复
分享
发布于 2021-03-28 01:20
第二题直接二维数组排序就好了,先按分数维度从大到小排序,再按选手序号排序,两次调用Arrays.sort,so easy
1 回复
分享
发布于 2021-12-04 21:15
编程题是可以跳出本界面的对吗?
2 回复
分享
发布于 2021-03-26 23:21
还有有摄像头吗?
点赞 回复
分享
发布于 2021-03-26 23:21
其实第二道难度还好了,半年前我也考过一次,情况和你一样,今天准备再战,这个难度有时候随缘的,简单的时候三道全破,难的时候第二道就傻眼了
点赞 回复
分享
发布于 2021-03-29 16:54
可惜我没有认真思考题目,我也遇到了贪吃蛇的题,直接投了,前两道简单略偏中等吧,一个扑克牌一个质数因子。
点赞 回复
分享
发布于 2021-03-30 14:56
长度加一是将食物变成蛇身体的一部分吗
点赞 回复
分享
发布于 2021-03-31 06:17
第二题楼主有思路了吗,我这个也一点思路都没得
点赞 回复
分享
发布于 2021-04-02 09:44
第三个我觉得需要同时维护自身坐标的双向队列和矩阵的变化,变动一步时先判断是否撞墙(矩阵角标越界)或者撞到自己(矩阵元素为Z),没撞到则头部坐标变动(加入队列头并将矩阵当前坐标标记为Z),然后如果吃到东西,则尾部不做变动,如果没吃到东西,将尾部从队尾移除,将其矩阵元素设为F
点赞 回复
分享
发布于 2021-04-07 09:26
能过
点赞 回复
分享
发布于 2021-04-10 09:38
第二题应该可以用数组加优先级队列,数组索引对应选手编号,队列元素表示选手得分。如果队列长度不到3就往里面加分数,不然就判断新加入的分数与最后一个的关系,再进行替换。
点赞 回复
分享
发布于 2021-04-11 12:23

相关推荐

8 74 评论
分享
牛客网
牛客企业服务