荣耀2024-5-16开发实习笔试经验

三道题分别100%, 50%, 100%,应该得分是500/600,第二题我太菜了没AC过程略显惊险
使用的语言是C++
第一题,直接用哈希表(unordered_map<int, int>)统计每个数字出现的频度,频度>=2的数字加入总和就可以,十分钟不到光速AC。
第二题,我算了攒魔力+瞬移和走路分别的平均速度,发现前者大于后者,选择优先使用魔力,然后能攒魔力就攒魔力。然而有一些情况比较复杂,比如说距离还剩51,走3步就到了,不需要攒3次魔力+瞬移=4次,我没有覆盖到,不知道评论区有没有大佬给出见解
第三题,起一个结构体,然后按要求计算like值就可以了,计算完后还要sort一下。但是我当时调试了快半个小时,一是我好像没看到like相同的时候结果按名称排序这个要求,二是它给的例子里面musicF的like值跟我算的不一样,我算的是5它给的是4只过了一小部分,最后5分钟加上了like相同的时候按名字排序,惊险AC,给我吓得不轻,看到AC的框那一片绿之后如释重负。
所以有大佬教教我第二题的AC思路吗,谢谢
#荣耀##honor##荣耀笔试##荣耀实习##暑期实习##算法题#
全部评论
贪心可以ac,依次判断当前魔法值大于10/魔法值大于5且剩余时间大于1/魔法值大于1且剩余时间大于2/剩余时间大于6时直接瞬移,其他情况走一步17,最后增加相应的时间距离,判断是否终止,输出当前时间或者当前距离。
3 回复 分享
发布于 05-16 21:27 北京
完全背包,不过是二维背包
1 回复 分享
发布于 05-16 21:01 北京
信也科技
校招火热招聘中
官网直投
循环判断是移动的距离小于安全距离和时间小于火山爆发时间。 然后就是每次循环time+1,更新移动的距离:魔力大于等于10,跑快点,魔力小于10,跑慢点。 循环结束判断移动距离是否大于等于安全距离就行了
点赞 回复 分享
发布于 05-16 20:52 江苏
佬讲下第一题怎么读取的呀 我读字符串就用了好长时间
点赞 回复 分享
发布于 05-16 20:55 北京
第二题贪心,有魔力用魔力,没魔力判断是否快到终点或快到时间,具体来说,如果魔力在6到10之间,判断是否还差1秒或还剩17m以内,是的话不停止。2到6,0到2类似
点赞 回复 分享
发布于 05-16 21:22 广东
可以尽量用魔法值,然后按照停留/正常速度/魔法移动三种状态进行回溯
点赞 回复 分享
发布于 05-16 22:05 江苏

相关推荐

邦邦我真的好喜欢你啊:我恭喜你😋😍我🦈了你😤😡我恭喜你😋😍我🦈了你😤😡我恭喜你😋😍我🦈了你😤😡我恭喜你😋😍我🦈了你😤😡我恭喜你😋😍我🦈了你😤😡
点赞 评论 收藏
分享
大猪蹄子哥:什么雨露均沾式写法……
点赞 评论 收藏
分享
4 4 评论
分享
牛客网
牛客企业服务