7.20 支付宝笔试

感觉很诡异,不太像考算法,有种小学奥数题的感觉。1h,两道题。

1、给一个数组a,一个空数组b,从前往后每次取a中一个数放进b的头部,然后逆转b。输出最后的b。

比如a是 1 2 3 4
b就依次是 
1
1 2
2 1 3
3 1 2 4
最后输出
3 1 2 4。

模拟的话会超时,找规律一趟遍历ac。
规律:
先从后到前把索引为偶数的放进b,然后从前到后把索引为奇数的放进b。
如果是数组长度是奇数,就把b再翻转一次。
输出b。

2、一个数组,数组里元素表示高度(非负)。定义一个合并操作,就是连续的相同的高度会合并成一个。数组输入的时候先做一次合并,不计入结果。然后开始操作,每一轮执行这两步:
  (1)数组中最低非零高度为k,每一个高度降低k。
  (2)进行合并。
当数组长度为1并且这个值为0的时候结束。

输出降低高度的轮数,以及每一次合并后的数组长度。

比如1 3 9 9 7,输入成1 3 9 7
然后开始操作:
第1次:0 2 8 6
第2次:0 6 4
第3次:0 2 0
第4次:0
结束。输出:
4
4 3 3 1

用模拟的方法过了50%,想分析规律,觉得跟数组初始状态中的每一个数连续相同数字个数有关,考虑dp但是时间不够了。
#笔试题目##蚂蚁集团#
全部评论
第二题应该就是用并查集做吧,再用个最小堆,然后每次pop,都查一下左右是不是小于等于当前pop的值,符合就合并(注意一次要把相同值的都pop出来),并查集大小就是每次操作之后的数组长度。 时间复杂度nlogn
点赞 回复 分享
发布于 2021-07-21 13:25
感觉好像不是这么理解的,0是不算的,我记得有个用例, 输入: 4 0 1 0 0 输出:  1 1
点赞 回复 分享
发布于 2021-07-21 10:07
🤣果然模拟有问题,谢谢楼主。第二题我也没写出来。😂
点赞 回复 分享
发布于 2021-07-20 20:47

相关推荐

09-16 14:43
已编辑
江娱互动_研发_客户端开发
背景 双一流本硕 双非大圆满 只找游戏开发相关的岗位。 8 月初开始秋招到现在 投了四五十家吧, 目前两 offer, 不打算继续投了,把剩下的流程走完就开始沉淀了。目前两 offer 一个是网易互娱测开 base 广州,一个是江娱互动客户端开发 base 北京。应该确定网易这个了,说实话北京这个我挺想去的,这家的产品和工作氛围我了解了也不错,是那种踏实做事的,可惜我是广东人。网易的测开是调剂的二志愿,看了下有内部转岗机会,所以打算后面找个时间提前实习,沉淀下再做一个 demo 作品,写一些 shader,增强下图形学渲染的能力,再学点编辑器开发。看到时候内部转岗或者春招继续投客户端开发这样。后面还能再动摇的话应该就灵犀或者腾子了吧(假如这两家确认的是客户端开发岗的话)。-----------------------补下timeline网易互娱 测开 8.2笔试  8.21 技术面  8.29 leader&HRBP面(终面) 9.8 录用审核(之前一直显示面试中)9.14 oc江娱互动 客户端开发 8.29主程面 9.3 制作人面 9.5 BOSS面 9.11 口头OC 9.15 正式offer后面考虑了一下  感觉还是能走开发就开发吧,测开不太感兴趣,要内部活水转岗还要满1年才能申请。。
点赞 评论 收藏
分享
评论
3
3
分享

创作者周榜

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