蚂蚁24秋招笔试题解分享0907

怎么投个c++岗,选择题一堆java和mysql,寄
这选择题是做过最难的笔试

T1:给个3*3的二维码,可以90,180,270翻转,多次询问在不在里面
这个数据范围很小,就暴力匹配下就行了

T2:有一个长度为n的a数组,里面的数互不相同且都<n,其实就是一个1-n的排列,现在问把这个a数组复制多少次,也就是变成k*n的数组,可以得到一个长度为n严格递增的子序列
长度为n的严格递增子序列意思就是必须是1-n,那么按照1-n的顺序去找,如果从i到i+1他要掉头,那么就说明需要多复制个新数组,那么就p[a[i]]=i 然后for (i=2;i<=n;i++) if(p[i]<p[i-1]) ans++;就行了;

T3:给一棵大小为n的树,边带权值,给一个m,问有多少方案可以在原树的基础上(u,v,l)的边,是的l<=m且不会改变树上任意点对之间的距离,并求出按照字典序排序的(u,v,l)的中位数的那个方案
设dis(u,v)为原树上u,v两点的距离,且u,v之间原来没有边,如果要加一条边不改变点对的之间的距离,那么取值范围就是[dis(u,v),m],因为这样他们就始终会走原来已有的边,而不是这条新加的边
n=3000
所以随便找个点建树,比如以1
那么dis(u,v)=sum[u]+sum[v]-2*sum[lca(u,v)],lca(u,v)就是u和v在有根树中的最近公共祖先,sum[u]表示根到u的边权之和
然后由于n只有3000,这个lca可以在建树的时候暴力平方搞出来,所以复杂度为O(n^2),把这n^2个lca查询挂在节点上用tarjan也是一样的复杂度
而枚举u,v的复杂度也是O(n^2)
当然搞个倍增或者树链剖分去带个log查询lca,感觉也问题不大
#秋招##笔试##蚂蚁#
全部评论
我是c++但大佬内推成java,点开一看选择一堆c++,我以为题是一样的,无语了。
点赞 回复 分享
发布于 2023-09-11 10:36 北京
if(p[i]<p[i-1]) ans++ ,怎么把我写的T2吞了一段
点赞 回复 分享
发布于 2023-09-07 20:47 广东

相关推荐

03-26 08:58
已编辑
门头沟学院 Java
ttl:&nbsp;3.19一面晚上过3.20二面3.23oc3.25offerbase:末9有一段中小厂实习一面面经:(总体时长一个小时二十分钟左右没什么八股,主要都是问项目和场景题1.实习(问了有四十分钟,感觉面试官很看重实习这一块,一直在拷打,问到后面我都要疯了,好在准备得比较充分1️⃣用的是什么中间件,有参与技术选型吗,实习的项目里为什么选这个RabbitMQ而不是kafka,为什么不用RocketMQ,为什么放弃异步,自己的项目里面使用的是kafka,那你觉得项目和实习的中间件选型有差异的原因是什么,他们之间的区别在哪里,底层的原因知道吗(高柱到这里已经快疯了,但是硬着头皮答完了,主要是从一致性吞吐量和框架的契合度答,面试官说答得挺好的,应该是没什么问题,这一块就问了快半个小时,到这里我已经快疯了2️⃣项目怎么对接上下游3️⃣介绍项目的难点重点4️⃣微服务(高柱实习是单体项目没涉及这一块5️⃣Redis的使用2.项目:1️⃣智能客服是怎么应用在项目里的(langchain4j➕rag➕functioncalling)2️⃣RAG了解多少3️⃣文本向量化的难点是什么,了解哪些大模型的知识(我一点不懂,纯瞎扯,但貌似扯对了4️⃣对ai的态度是什么,aicoding相关5️⃣怎么保证多节点下Caffeine缓存里面数据都是一致的(答的是短ttl,面试官不是很满意,但是我确实不太懂这个怎么保证,后来查了还是不懂怎么保证6️⃣Redis的使用,和你的实习项目的使用有区别吗,还有一些引申问题3.八股(含量不高,就是走个过场1️⃣进程的内存布局2️⃣Redis三剑客3️⃣微服务相关知识(高柱已经忘得差不多了…勉强答上来4️⃣JVM5️⃣线程状态6️⃣线程安全,在你的实习项目里怎么保证线程安全的(又绕回来了4.智商题找异常球5.手撕:1️⃣五道sql,不难2️⃣力扣不重叠的滑动窗口数组,贪心➕双指针秒了强度拉满了这个一面,高柱到后面人都是傻的二面面经:(就半个小时实习拷打,简历上写了几点就问了几点,问完就结束了,无手撕
查看19道真题和解析
点赞 评论 收藏
分享
评论
5
收藏
分享

创作者周榜

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