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