华为笔试0911

华为笔试0911,有史以来最简单的一次笔试。一小时不到,写完了。吐槽一下华为笔试的那个编辑器和页面真的窜稀。样例不能复制,要一个一个手打,那个编译器也没有代码提示,也没有一些基础的早相是找相同或者之类的功能写代码,只能一个一个戳,不知道的还以为是在txt上写。
三道题都挺简单的,甚至我觉得可能第一道题难度还稍微大一点,容易被误导。
第一题丢垃圾,给定一个n×m的矩阵,用二代表着为空,用一代表着有一个小区,用零代表着有一个垃圾站。然后还有个负数代表着是有个障碍物。问,每个小区丢垃圾所需要的步数的和最小值为多少?利用bfs,开始把所有的垃圾场压进队列当中,然后正常bfs找每个位置上下左右相邻的位置,首先判断这个位置是不是空旷的,能不能到达,曾经有没有到达?如果判断到当前位置是小区,那么就把总答案加上当前的步数即可。利用bfs的特性,可以保证每个小区到垃圾场的位置一定都是最近的。
第二题堆箱子,给定n个箱子,最大1000个,然后给出每个箱子的长宽高,求从上往下堆箱子给下面的箱子长宽高都要大于上面的箱子,留在符合条件下面搭建出来的箱子,最高总高度。那其实就是简单的dp,甚至连dp都说不上。首先,对所有箱子进行一次排序,把它们按照高度排序。(不排序只过25%的可以判断一下是不是这个原因)。然后遍历每一个箱子,对于每一个箱子,找这个箱子上面的所有箱子都比他长宽高都小的,如果前面的某一个箱子假设为j比现在箱子小。dp(now)=max(dp(now),dp(j)+high(now)).这样就可以得到一前箱子为底可以搭出的最高的高度,一路往下最后一可以找到所有箱子的最高高度。
第三题是一个覆盖dp题,其实实际跟第二题是类似的,给定最多n为一万个站点,在有最多m为十万个方案,个方案有一个lr和val.代表着这个方案,需要l站点一直到r站点里面的所有站点,并且可以带来VAL个收益.问,现在给出所有方案,最多能够赚多少钱?实际也跟第二题类似,有点贪心的味道。先把每一个方案按照他的r进行排序(为什么按照r排序这是一个贪心的思想,我很难解释得清自己举两个例子捋一下可能就懂了)。把它们放到一个队列里面,排好序,不停的拿出头部方案,就是当前最左边的方案。然后遍历每一个站点。两种情况第一种就是头部的方案,他的r的位置也大于当前的位置
全部评论
强啊佬
2 回复 分享
发布于 2024-09-11 20:45 陕西
虽然但是 那个测试用例点一下就自动复制到测试输入那儿了 不用自己手动粘贴
1 回复 分享
发布于 2024-09-13 12:15 陕西
借楼:华为云计算期待同学们投递哈,在西安和上海均有HC,招聘大量软件测试、测试开发同学哈~有意向的同学环境私戳了解。
1 回复 分享
发布于 2024-09-13 09:05 香港
最后一提茅塞顿开,我太菜了,算下来刚刚过线
1 回复 分享
发布于 2024-09-11 21:14 黑龙江
华为的编译器气死我了,我以为不能使用本地编译,第一道题自己用他的编译器写了半小时,括号里的东西写着写着就丢了😅😅一会儿括号也丢了😅忍无可忍问了客服,最后用vscode写的,好在三道全做完了。
1 回复 分享
发布于 2024-09-11 20:51 辽宁
续上面,当前队列的头部位置一定是所有方案里面最靠小的。这个方案的r也大于当前的位置,那证明没有方案可以新增。dp[now]=dp[now-1].另外一种情况,存在方案的r小于now.(可能有多个方案r相等,假设是J号方案,需要从j.l一直到j.r的基站,产生j.val个价值)那么if(now==j.r) dp[now]=max(dp[now-1],dp[j.l-1]+j.val) 得到转移方程,上面这个是核心转移方程。理解它就会做这道题。最后输出dp[n]。结束
1 回复 分享
发布于 2024-09-11 20:51 广东
强啊,我也觉得还行,这个一个半小时
1 回复 分享
发布于 2024-09-11 20:50 广东
牛逼我都想不到是dp,刚过线
点赞 回复 分享
发布于 2024-09-12 09:48 黑龙江
我靠我第二道题没排序20%,我看用例是排序了以为排序了,
点赞 回复 分享
发布于 2024-09-11 21:50 陕西
笔试是取最高一次通过率提交还是最后一次提交结果呀,后面通过率改底了时间到自己交了😭
点赞 回复 分享
发布于 2024-09-11 21:45 黑龙江
tql,膜拜一下
点赞 回复 分享
发布于 2024-09-11 21:17 黑龙江

相关推荐

2025-11-13 20:16
已编辑
厦门理工学院 软件测试
专业嗎喽:硕佬,把学校背景放后面几段,学校背景双非还学院,让人看了就不想往下看。 把实习经历和个人奖项放前面,用数字化简述自己实习的成果和掌握的技能,比如负责项目一次通过率90%,曾4次发现项目潜在问题风险为公司减少损失等等
点赞 评论 收藏
分享
2025-11-22 14:21
未填写教育信息 Java
程序员花海:实习太简单了 学历可以的 实习描述应该是先介绍业务 再介绍技术 技术咋推动业务的 做到了啥收益 有没有做实验 实验组和对照组有什么不同 你最后学到了什么 有没有参与处理过线上问题 有没有参与过公司的code review 有没有参与过技术分享 这些都是可以在实习描述中写的 并且实习和项目不一样不会撞车 应该放在最前面 放在教育背景下面 另外项目有点烂大街 可以看下我主页的简历优化案例
点赞 评论 收藏
分享
评论
20
46
分享

创作者周榜

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