蚂蚁笔试2024.3.30

24届要毕业的我,不小心又做了实习笔试。一直以为是算法的笔试,然后搞了个开发的笔试,算了当回忆了,记录一下。
有一说一,今天的选择题比前几天算法选择题简单很多,基本能对75%以上吧。

第一题题意:对于n个顶点,判断m条边能否构成图切不包含重边自环。
做法:临界n-1,n*(n-1)/2

第二题题意:给定一个长度为n(<1e5)的数组,最多操作m(<1e5)次,每次选连续的k(小于n)个数加1,求操作完之后数组最小值的最大值。
做法:看到最小最大放在一起时,一般就是二分答案。区间加单点查询,搞个八百年没写了的线段树从左到右扫一遍。时间复杂度O(nloglog)。

第三题题意:给定一个长度为n(<1e5)的数组,值为-1或者0或者1,求分别有多少子序列乘积为-1,0,1。
做法:和数组本身没多大关系,记num0表示0的个数,num1表示1的个数,num2表示-1的个数。
乘积为0的公式为(2^num0 - 1) * (2^(num1+num2))
乘积为-1的公式为(\sum_{i为奇数} (C(num2, i)) * (2^(num1))
乘积为1的公式为(\sum_{i为偶数} (C(num2, i)) * (2^(num1)) - 1
逆元前缀乘积 + 快速幂。时间复杂度O(n)
全部评论
第二题没必要上线段树,二分加差分就行
4 回复 分享
发布于 2024-03-30 13:11 上海
太牛啦
1 回复 分享
发布于 2024-03-30 14:58 江苏
啊,我第三题用的动态规划,不知道咋初始化哎,...
点赞 回复 分享
发布于 2024-03-30 12:00 辽宁
ww问问这套题在大厂笔试里算难吗
点赞 回复 分享
发布于 2024-03-30 11:47 上海

相关推荐

球Offer上岸👑:可能是大环境太差了 太卷了 学历也很重要 hc也不是很多 所以很难
点赞 评论 收藏
分享
今天 17:00
武汉大学 Java
6月了还有点击就送的offer吗😭,投麻了😢
叫我阿东就行:这个bg,也还没找到理想的工作吗?好难,好焦虑
点赞 评论 收藏
分享
评论
4
24
分享

创作者周榜

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