大厂软开秋招笔试(算法)真题

请你基于golang实现以下算法:小歪有一个数字n,但是他依旧不满足,他想要让自己的数字变得更多!
对于他已有的整数n,如果存在另一个整数x使得其全部数位的和加上它自己恰好为n,那么这个数字就是“可爱数字",连一条从n到x的双向边
对于连接而成的图,直接输出两个数字之间至少需要经过几条边,或报告这两个点不连通。
输入描述:
在一行上输入三个整数n,u,v(1≤n≤10^6 ;1≤u,u≤n; u≠v)代表小歪的初始数字和询问的两点。
输出描述:如果可以从数字点 u 到达数字点v,在一行上输出一个整数,代表最短需要经过的边数;否则,直接输出 NO
示例:
输入:13 5 13
输出:3

请你基于Golang实现以下代码:机器人侵入了宝可梦世界,为躲避机器人攻击,宝可梦奋力奔跑。
逃脱道路长度为 len(len>2),初始机器人位于1、宝可梦位于k(k>1),当宝可梦移动到 len 时视为逃脱成功。
现在一共有n个障碍物位于道路上,宝可梦摧毁第i个障碍物需要花费ti个单位时间,并且宝可梦和机器人移动一格都需要1个单位时间。
请你帮助宝可梦算出她能否逃脱成功。
注:机器人具有超能力!摧毁障碍不需要时间!
输入描述:
每个测试文件均包含多组测试数据。第一行输入一个整数T(1≤T≤1000),代表数据组数,每组测试数据描述
如下:
第一行输入三个整数
len,n,k(2<len<10^9;0<n<len-2; 1<k<len)代表道路长度、障碍物数量和宝可梦的初始位置。
第二行输入n 个整数 a1,a1,......,an(1 < ai < len)表示第i个障碍物的位置。保证障碍物不生成在宝可梦的位置上,障碍物两两位置不重叠。
第三行输入n 个整数 ti(1 ≤ti ≤ 10^6),表示摧毁第i个障碍物的时间。
除此之外,保证所有的n之和不超过 10^5
输出描述:
对于每一组测试数据,如果宝可梦可以逃脱,在一行上输出“YES”否则输出“NO”
示例1:
输入:
2
6 1 4
5
3
6 1 4
5
2
输出:
NO
YES

小友需要采购一批货物,数量为k,一共有n家供应商可以选择,每家供应商可以提供0到max数量的货物。采购部门要求每次采购需要从三家供应商中选择,请计算有多少种供应商组合。
说明:供应商的选择可以重复,若无法组合,则返回0。
输入描述:
输入一共有两行:
第一行输入一个正整数n,一个正整数k,分别表示供应商数量和需采购货物数量;
第二行输入n个正整数gi,表示每个供应商可以提供的货物数量。
输出描述:
输出供应商组合数量
补充说明:
3<=n<=3000
0<=gi<=Integer.MAX VALUE
示例1:
输入:
6 30 
9 10 11 12 9 6
输出:
3
说明:
n[0]+n[1]+n[2]=9+10+11=30
n[0]+n[3]+n[4]-9+12+9=30
n[1]+n[2]+n[5]=10+11+9=30
一共有3种组合方式

小友玩了一款打怪游戏,因为开了科技,所以小友可以直接秒杀怪物,同时获得这一关卡怪物的所有能量值。小友可以使用新获得的能量值进行跳关,能量值为最大的跳关数量,跳关后会清空所有能量。因为开了科技,导致有些关卡没有刷新怪物,会让小友在这一关内无法新获得能量,从而被困死在这一关。给你一个关卡序列,请你帮助小友可以顺利打到最后一个boss关卡,拿到通关奖励。
输入描述:
输入为一个关卡能量的序列,例如2 0 1 0 1,即表示第一个关卡能量值为2,小友可以选择跳一关到达第二关。但是第二关没有刷怪,导致小友被困死。小友也可以选择跳两关到达第三关,第三关能量值为1,小友只能跳一关到达第四关。第四关没有刷怪,小友被困死。最终,小友无法到达最后的boss关卡。
输出描述:
输出true或者false。
true表示小友可以到达最后的boss关卡。false表示小友不可以到达最后的boss关卡。
示例 1:
输入:1 3 2 1 4
输出:true
说明:第一关获得一个能量,跳到第二关;第二关获得3个能量,跳到第五关,结束。
示例2:
输入:1
输出:true
示例3:
输入:0 2 3 4 4
输出:false
说明:第一关没有刷怪,直接困死

小友获得了一个超能力-- 点石成金:只要用手指点一下地面,以接触点为中心的正方形区域都会变成金子。但是该能力有一个限制:碰到墙壁或已经变成金子的地面时,本次点石成金的过程就会停止。
小友每次使用点石成金的能力,都会消耗1单位能量。现在小友处在一个大小为n乘以m的矩形房间内,他想消耗最少的能量把整个房间的地面都变成金子,请问这个最小值是多少单位?
补充说明:
1.房间的边长都为整数,且1<=n, m<= 30;
2.假设小友每次使用点石成金,都可以把一个正整数边长的区域变成金子。
示例1:
输入:
3,2
输出:
3
说明:
1. 点击最右侧 2x2 区域的中心,该区域变成金子,
2.分别点击剩余两个1x1区域的中心,所有区域都变成金子

小明有一个长度为n,由前k个小写英文字母组成的字符串(保证n为偶数)。
小亮想在小明睡觉的时候把这个字符串用小明的零花钱消除干净。小亮每次可以选择该串的两个相邻的字符删除,删除后将串拼上,并花掉小明一定数量的零花钱。若某一次删除的相邻两个字符从左到右分别是a和b,则将花掉小明cost(a,b)块钱。小亮希望他花掉的零花钱尽可能多,帮帮小亮。
输入描述:
第一行有两个整数n,k(1<=n<=500,1<=k<=26),分别代表小明的字符串长度与字符串中的字符种类数(保证n为偶数且串的内容仅由前k个小写英文字母组成)。
接下来k行给出了一个k*k的由整数构成的矩阵。矩阵中第i行第j列的元素代表消除相邻的第i个字母和第j个字母所能花掉的钱数。最后一行有一个长度为n的字符串,代表小明的字符串。
输出描述:
输出一个值,代表小亮最多能花掉小明多少零花钱。
样例输入:
4 3
0 1 3
2 0 0
0 0 0
abac
样例输出:
5
全部评论

相关推荐

04-13 15:31
门头沟学院 Java
某游戏厂,面了 1h。大部分时间都是问纯八股,项目一点没问,手撕也很简单,网上搜到的面经大部分是C++八股文轰炸或者项目拷打。是不是因为一开始就对我不感兴趣所以干脆不为难我了面经如下:自我介绍游戏经历主要编程语言(我说的Java 但是岗位写的是C++/GoLang)求职方向是后端,为什么选择游戏服务器开发有Linux使用经历吗(项目部署)用过的Linux命令查看文件用什么命令,查看大文件呢?租服务器会关注服务器配置吗,如何确定这个配置能够满足项目部署的需求?会分析服务器使用情况吗(CPU、内存使用率),如何定位具体的线程资源使用情况?讲讲数组和链表结构、常用操作、时间复杂度为什么数组支持随机访问(内存连续+偏移量)讲讲栈和队列结构、区别、应用讲讲RabbitMQ如何用数组实现队列讲讲哈希,平时用过哪些哈希的数据结构哈希表的key如何获得什么是哈希冲突哈希底层原理了解吗面向对象三大特性现场写一下多态的例子讲讲平时用过的设计模式手撕反转链表、反转字符串反问的时候面试官说我可以自信一点()最后给点建议吧:纯八股 + 项目一点没问,大概率不是“不感兴趣所以不为难你”,更可能是:1,面试官习惯按固定流程走,先筛基础2,或者他觉得项目跟岗位匹配度不高,问了也白问,3,面了一个小时还给建议,说明你至少过了他的及格线。别自己加戏
查看23道真题和解析
点赞 评论 收藏
分享
04-13 09:20
已编辑
电子科技大学 C++
自我介绍 实习1. 去上一家公司实习的目的?2. 为什么离职?3. 上一家公司职场氛围和交流氛围如何?4. 上一家公司实习主要的工作背景和产出?5. 介绍一下上一家公司实习的背景和原理6-12. 实习拷打13. 上一家公司有没有 AI 提效工具?有没有 AI 培训?其他员工有没有相关的使用经验?14. 你为什么在实习开发中使用 AI 工具吗?15. 总结一下上一家公司实习你的收获是什么?16. 实习期间,你遇到最困难的一个点?你是如何解决的?项目1. Raft 项目的动机是什么?算法无闲聊1. 你转专业了吗?还是自学?2. Golang 和 C++ 哪个用得比较多?3. 面试官介绍 Golang 和 C++ 在后端和鸡架开发之间的差异...4. 能实习多久?专业其他同学的规划是读研还是就业?5. 你为什么想要就业?你不用上课吗?6. 有没有想过跨考?7. 反问总结第一次约面后,面试官临时有会,面试前 5 分钟取消会议。推迟了一天,然后又迟到 10 分钟。自我介绍完就感觉像是 KPI 面了,不过没关系,感觉还是很好为人师的面试官,反问环节直接让他帮我把从 C++ 到 Golang 学习路线规划了一下,也请教了一下应该阅读哪些书籍。
发面经攒人品
点赞 评论 收藏
分享
04-10 14:00
门头沟学院 Java
4/1 hr 电话约面的时候问了是否可以转 golang, 同意后约面面试官开头介绍技术栈为 golang面试体验很好, 问答之后基本都有正面回应, 但没怎么挑我的刺, 面试官可能不熟悉 JAVA 或根本就不想要我没录音可能有遗漏Q1 自我介绍Q2 你是怎么构建这个 agent 的 (组装链 + 执行链)Q3 在执行过程中出现问题怎么解决的, 采用了什么降级措施吗 (没有采用, 直接终止)Q4 你项目上说了 RAG, 你来介绍一下 RAG 在你的项目中是怎么使用的 (作为 advisor 角色, 在思考流程时通过知识库的形式组装到 prompt 中)Q5 你项目使用了 sse, 说说 sse 是什么与 websocket 有什么区别? (sse 单向构建简单)Q6 项目中你是怎么使用 sse 时? (在 trigger 层中配置了 sse 的三个参数, 使用 emitter)Q7 你刚才提到了 trigger 层这一 DDD 领域概念, 你知道 DDD 吗? (不太熟悉, 扯了一下分层, VO, 聚合根)Q8 你这个高并发本地服务平台有什么用? (黑马点评)Q8 你第二个项目高并发平台测试过多高并发度吗? (瞎扯了几百并发度, 实际还没测试)Q9 你说实现了 session 共享怎么实现的, redis 的 key 和 value 怎么储存的 (通过 redis 实现的, 将 session id 作为 key 存储到 redis 中, key 和 value 都是 string)Q10 你说能够无感 token 刷新与权限校验是怎么实现的 (这里我忘记了, 就扯 redis 存然后将 token 返回给前端浏览器)Q11 你说返回给前端浏览器, 然后我换一个浏览器是不是 token 就失效了? (是, 因为 token 是存在浏览器中的)Q12 你提到了 cache aside, 它是什么? (redis 未命中则取数据库, 还说了一下另外两种, 说了一种另一种忘记了)Q13 你说用延迟双删实现过期时间补偿, 什么是延迟双删 (先删 redis 后 sleep 再删 redis)Q14 这个 sleep 设置时间是怎么确定的? (由于前面扯了几百并发度, 就说在这个并发度下这个时间最合适)Q15 你提到了互斥锁, 聊聊你项目里的互斥锁? (首先是 setnx 与 ex 手工首先的互斥锁, 但没有过期续费和可重入功能所以还使用了 redisson)Q16 你提到了布隆过滤器? 说说它的原理 (本质是 hash 表 + 多个 hash 函数, 对应槽位为 0 一定不存在, 全为 1 不保证一定存在)Q17 怎么提高布隆过滤器的准确度 (根据准确度的计算公式, 多增加 hash 函数来实现)Q18 你使用了 lua 脚本, 它的原子性是怎么实现的 (这个一点都不知道, 直接回答了不知道)Q19 后面你提到了 rabbitmq 消息队列, 为什么使用它, 它有哪些使用场景 (聊了 redis 自带的三种消息队列各自的缺点, 但使用场景没讲清除)Q20 你使用了 hyperloglog, 你知道它的原理吗 (不熟悉, 回答不知道后面自己补充了 geo 的原理)Q21 你知道 zset 是怎么实现的吗? (skiplist + score / ziplist)手撕:Q1 最大子数组和 (秒后讲一下原理, dp)反问:Q1 组内业务是做什么的? (QQ 浏览器 + 推荐广告)Q2 是推荐算法吗? (不是, 就是根据已经为用户选好的广告来推送)反思:面试之前都是复习第一个 agent 项目和八股去了, 导致后面的点评很多都忘记了, 后面打算改一下简历, 去掉一些没有和业务相关的技术.还要修正一下自己的回答方式, 多从 业务 -> 技术的角度来思考回复
查看25道真题和解析
点赞 评论 收藏
分享
04-07 17:56
已编辑
门头沟学院 golang
pdd 是我面试体验过的最差的公司,没有之一。面试官是一个年近中年老油条。1. 开口爆典问学历,是 985/211 吧?哦原来是啊,我没怎么听说过,不怎么有名吧。2. 有实习吗?拿到 offer 了吗?3. 我们组主要用 Java, go 在我们公司用的其实比较少,主要是在某节用得多,为什么想要来上海工作?我说随便选的,北京上海深圳随机选一个(第一个问题问完我就已经不想回答了)4. 然后就开始给我戴帽子:“哦,也就是说你对你的未来没有什么规划是吧?”我听到这实在蚌埠住了,我直接和他说:“我不认为是我自己的规划有问题,你们公司在该岗位没有写明语言限制,而且我的简历上也写明了我期望的工作是 golang 后端开发,面试安排也是你们公司安排的,是你们公司的招聘部门的规划出现了问题。”5. 然后他一看我很强硬他怂了,然后就跟我说可不可以接受转语言,如果不可以接受他可以帮我对接一个 go 开发相关的面试官。然后我钓着他,说我写过一些 Java 开发的项目,如果你们组业务对口,我也不是不接受转语言。然后他巴拉巴拉讲了一串他们组的业务(我一个字没听),然后我和他说:“那我还是坚持找 golang 开发的岗位吧。”然后就挂了,跟我说另安排招 golang 的面试官面试。总结:全程五分钟,我从寝室出来找个位置+调试设备都花了3-4个五分钟?
钱嘛数字而已:感觉像新手面试官,哪有开局就给孩子们讲业务的,谁面试谁呢?
查看5道真题和解析
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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