荣耀 通用软件开发 实习 5.16笔试

一共三题

第一题是给一个数组,元素有正有负,返回这个数组中重复两次以上的元素的和。

思路:用HashMap,key 为元素,value 为出现次数,秒了,通过率 100%

第二题是一个岛上面火山爆发了,游客需要逃到安全区。上帝赐予游客一定魔法值,消耗 10 魔法值可以在一秒内瞬移 60 米,原地不动一秒可以恢复 4 点魔法,游客的原始移动速度为 17m/s。

思路:一眼动态规划,定义dp[t][m]为游客在时间 t内拥有 m 点魔法可以走的最大距离,通过 75%。

第三题是设计一个音乐播放器,这道题其实描述和处理比较复杂。还好前两题做得快,不然这一题写不出来。。。

思路:写一个 Song 的类,然后使用 HashMap 分别存歌曲、和上一次听完、打断的歌曲,操作一下就好。用例通过 85.7%。

总结:感觉笔试难度其实不大,主要得理解,而且得留足够时间,不然到后面就慌了。

#荣耀笔试#
全部评论
好兄弟第二题能细说吗,还有是一秒走60还是一瞬间走六十呀
点赞 回复 分享
发布于 2024-05-16 23:07 安徽
第三题我也是85.7,我按照名字排序了,不理解为啥不能ac,而且测试用例的说明是不是有问题呀,为什么B歌曲喜爱度是5呢,不应该是4吗
点赞 回复 分享
发布于 2024-05-16 21:51 江苏

相关推荐

开场: 1、自我介绍研究方向:2、介绍下你的研究方向这块实习:3、实习做了哪些工作4、系统的数据来源5、系统这些数据量大不大,用什么存储的6、慢查询排查优化完整流程讲一下7、这块MySQL的数据量大吗,怎么样的8、Caffeine参数怎么设置的9、Caffeine命中率统计过吗10、如何保证Caffeine命中率11、Redisson分布式锁解决缓存击穿是什么样的场景12、没拿到Redisson分布式锁的线程直接返回吗13、Caffeine + Redis + 数据库的三级缓存会出现缓存击穿吗,怎么解决项目:AI项目14、这是开源的还是你们真实存在的,介绍下15、召回率准确率有测量吗点评16、这个是开源项目吗17、介绍下你做了哪些优化18、滑动窗口限流用的Redis哪个数据结构19、这里面key这些怎么设置的20、滑动窗口和请求数设的多少21、那如果很高并发请求,这块还可行吗,怎么办22、做过压力测试吗23、Redis 是单体的吗还是24、Lua 脚本里redis key怎么构成的八股:25、常见限流算法还知道哪些,讲一下26、Lua脚本能保证原子性吗27、Kafka rebalance场景说一下28、Kafka 分区数与消费者组消费者数这里的关系讲一下29、Kafka 重复消费怎么解决30、Kafka 消费堆积怎么解决31、线程和进程的区别32、InnoDB默认隔离级别是,解决了哪些问题,怎么解决幻读的33、事务四大特性34、Spring 怎么解决Bean对象循环依赖的35、ArrayList是线程安全的吗,List里面有哪些是线程安全的36、ConcurrentHashMap如何保证线程安全的37、final关键字的作用38、synchronized 和 ReentrantLock 区别39、垃圾回收了解吗40、OOM如何排查优化,了解过吗41、实际用过MAT吗42、Redis有哪些数据结构43、Redis底层用了哪些数据结构44、Redis过期删除策略和内存淘汰策略
点赞 评论 收藏
分享
头像
04-20 22:26
南京大学 Java
攒人品ing~(一天三面我燃尽了)个人背景介绍一、 项目深挖:高并发博客系统架构面试官提问:你的并发控制和API限流是怎么做的?面试官追问:点赞的接口限流具体怎么实现的?面试官追问:数据最终怎么落库?MQ消息丢了怎么办?二、 场景题:使用Redis实现QPS/QPM/QPD限流面试官提问:如果要用Redis限制一个接口在滚动窗口下的QPS、QPM、QPD,怎么做?第一版思路:将时间单位拼接到Redis Key中。面试官指出:这会导致Key数量爆炸式增长。第二版思路:使用Hash结构,记录用户在特定时间窗口内的访问次数。面试官指出:这种方式只能记录自然时间(如自然天、自然秒),无法满足滑动窗口的需求。第三版思路:使用ZSet实现滑动窗口,Score设为时间戳,Value设为唯一标识。每次请求进来先移除时间窗口之前的数据,再使用 `ZCARD` 统计当前元素个数来判断是否限流。面试官指出:在QPD(每天调用量)极大且高频的场景下,ZSet会导致元素过多,产生大Key问题。第四版思路(最终被认可):针对精度要求没那么高的QPM/QPD,采用“分桶计数”思想。将一天24小时分为1440个分钟桶,使用String存计数值。每次判断时只需将最近时间段内的桶数据相加即可,旧桶设置自动过期销毁。表示该方案可行。三、 项目深挖:缓存三大问题解决方案面试官提问:你在项目中提到的“布隆过滤器 + 互斥锁 + 逻辑过期”是怎么协同工作的?四、 手撕算法题目:LeetCode 124. 二叉树中的最大路径和。五、 反问环节问:入职后实习生的主要工作内容是什么?问:团队内部对于AI写代码的认可度如何?问:对我今天面试表现的评价和建议?
查看9道真题和解析
点赞 评论 收藏
分享
评论
6
6
分享

创作者周榜

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