PDD 服务端研发工程师笔试 0914

#pdd##拼多多求职进展汇总##拼多多#

四道题 40min

比某需要手写输入输出的简单 我说的()

11:35 一更
怎么这 性格测试 也要双机位 太抽象了

12:01 二更

t1 字符串
从A串构建B串,方法为:A串每个长度为2的子串连接成一起
给B串,反推A串

t2 发货
n, m, x
n天可以发货,一共要发m个货, 每天最多发x次
ai 表示第i天发货多少钱
bj 表示第j个包裹要在第j天或之前发货
求发完货最少需要多少钱

t3 水晶
n个水晶,每个水晶能量为ai

求多少个子串满足 子串size = SUM(a[i..j])

t4 序列分数
一个长度为n的序列,q次查询
每次给出x和y,可以进行任意次交换操作

然后
求sum(a[0..(int)(n / x)]) - sum(a[0..(int)(n / y)])可能的最大值
样例n = 7, x = 2, y = 3 即(a2 + a4 + a6) - (a4 + a6)

题解

t1
去掉尾部,输出奇数位的字符串
然后加上尾部

t2
贪心 + 懒删除(?)
排序包裹从小到大处理
小根堆维护当前最低的价格,同时记录可以在这个价格发货的天数的出现次数,暴力塞就完事
然后判次数是否已经耗尽,耗尽就弹出

t3
易知求prefix_sum[i] = prefix_sum[j - 1] + (i - j + 1)
推出 prefix_sum[i] - i - 1 = prefix_sum[j - 1] - j
蛤希表维护后者,O1查询

t4
贪心,放左边的越大越好,放右边的越小越好
维护升序、降序两个排序后的序列的前缀和

左边的个数为 n / x 右边的个数为 n / y(废话)
但是存在重复
重复应该是 n / 最小公约数(x, y)
即 n / (x * y / gcd(x, y))
去掉重复的个数后
用前缀和O1取最大的 - 最小的
全部评论
第二题真抽象, 没开long long, 直接过0用例, 我还以为算法有问题 看半天, 结果开long long后直接ac了.
2 回复 分享
发布于 09-14 11:41 广东
问一下第三题怎么做呢,就是什么多多挖水晶,我滑动窗口一直超时
1 回复 分享
发布于 09-14 11:47 天津
果然是大佬,做这么快
点赞 回复 分享
发布于 09-14 13:46 上海
大佬好强,我写了一个多小时写不出来就直接交卷了,这个笔试的题有地方看题解吗?
1 回复 分享
发布于 09-14 11:37 上海
佬问一下t2,我没oc,除了你这里写的逻辑外,是不是还需要判断堆顶最小价格对应时间是否 <= 当前bi的时间(最晚时间),不是的话还需要弹出堆顶并暂存起来,往后找,找到后再压回堆?
点赞 回复 分享
发布于 09-14 12:49 北京
前端编程题答题区是文本编辑器,没办法调试。服务端也是吗?
1 回复 分享
发布于 09-14 11:30 湖北
好久 我只有两题 第二题卡了半天,应该先做第四题的,贪心处理应该就可以了 第二题直接放弃
点赞 回复 分享
发布于 09-14 12:15 新加坡
1 回复 分享
发布于 09-14 11:22 广东

相关推荐

09-14 11:48
门头沟学院 Java
想要offer的劳伦...:我2.75能进面试么?
投递拼多多集团-PDD等公司10个岗位
点赞 评论 收藏
分享
评论
2
1
分享

创作者周榜

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