pdd 8.17笔试

1.从 n 个商品中选取两个商品,如果它们的价值之和是 m 的倍数,那么这两个商品就可以免费拿走。问题是求有多少种这样的商品组合。

解法思路类似两数之和:使用哈希表记录每个数对 m 取余的结果,满足条件的两个数需要它们的余数之和等于 m(或者两者余数都为 0),即 (a % m + b % m) % m == 0。

2.每天都会有一只 ​​小动物来到你的农场 ,总共有 ​​n 只小动物​​会在 ​​n 天内依次到来​​,每个小动物需要每天吃si框食物,再总消耗不超过总食物框数的前提下,求最后能养多少动物
解法:计算每只动物的总消耗(n -i * (nums[i])),排序后从头开始累加到超过总食物框数即可

3.从 N 个任务中,选出一个连续的区间(任务序列),使得这个区间内所有任务的分数之和 至少为 T​​(也就是满足总分数 ≥ T 的最小窗口)。而在这个满足条件的窗口中,找到一个 ​​最优解:即该窗口中 所有任务的难度的最大值 尽可能小​​。
解法:滑动窗口+单调队列,双指针维护一个窗口,保证窗口内的分数总和 ≥ T;单调递减队列维护当前窗口中的最大难度值;

4.在一条道路旁种了一排树,每棵树都有一个美观值。要求这条道路上任意一段连续的树的美观值之和都不能等于 M。为了达到这个目标,可以在任意位置插入一棵新的树(可自定义其美观值),问最少需要插入多少次新树,才能保证整条道路上不存在任何一段连续子序列的美观值和为 M。

第四题我就单纯的计算了前缀和==m的个数,通过了20%。

总体来说难度不大(点名mt),一小时a了3.2,最后一题没啥思路也不想写了。直接交卷。#笔试##拼多多#
全部评论
第一第三题我超时了,用的双指针遍历,不知道怎么优化剪枝,第二题贪心过了
2 回复 分享
发布于 昨天 12:06 广东
我和你思路一模一样,但每道题都有一部分测试用例不通过这是因为啥啊。。。。大佬在吗,想不出是差在那部分细节上
2 回复 分享
发布于 昨天 11:52 上海
第一题余数为0和m为偶数时的m/2的求n*(n-1)/2, 其他小于等于m/2的k求map[k]*map[m-k], 这样为啥不对啊,只过32%
点赞 回复 分享
发布于 昨天 12:18 浙江
我第三题只用了滑动窗口,但是没用单调队列,不过还是AC了;最后一题没什么思路,就直接输出0了,能拿15%😂
点赞 回复 分享
发布于 昨天 12:14 上海
3.2能进面试嘛,我也差不多这个
点赞 回复 分享
发布于 昨天 11:42 四川

相关推荐

投递快手等公司10个岗位
点赞 评论 收藏
分享
------------------------------------题目一:题目大意:给定一个长度为 n (1 <= n <= 1e5) 的序列 a (1 <= a[i] <= n)。你可以执行最多一次操作:选择一个连续区间 [L, R],将区间内所有数字加1。你的目标是最大化操作后能减少的逆序对(能量冲突)数量。(T 组数据)解法思路:核心是分析区间加一操作对逆序对的影响。一个逆序对 (i, j) 会被消除,当且仅当 i 不在区间内,j 在区间内,且 a[i] = a[j] + 1。反之,如果 i 在区间内,j 不在区间内,且 a[i] = a[j],则会产生新的逆序对。为了避免产生新的逆序对,最优策略是选择一个后缀区间 [L, n] 进行操作。问题转化为,对于每个 L,计算选择后缀 [L, n] 能消除多少逆序对。这可以通过从后向前遍历 L,同时用两个计数数组分别维护 L 前后各个数值的出现次数,在 O(n) 时间内计算出每个 L 对应的收益,从而找到最大值。------------------------------------题目二:题目大意:有 n (3 <= m <= n <= 1e5) 位评委,给出 n 个评分。你需要在这 n 个评分中,找到一个长度为 m 的连续区间,使得去掉该区间中的一个最高分和一个最低分后,剩下 m-2 个分数的平均值最大。输出这个最优区间的起始位置(1-indexed)。如果平均值相同,选择起始位置最小的。解法思路:由于分母 m-2 是固定的,最大化平均值等价于最大化分子,即 `区间和 - 区间最大值 - 区间最小值`。这个问题可以用滑动窗口来解决。维护一个长度为 m 的窗口,从左到右滑过整个评分数组。为了能在窗口滑动时(增加一个元素,删除一个元素)高效地找到最大值和最小值,需要一个支持快速增删和查询极值的数据结构。C++ 中的 `multiset` 或 Java 中的 `TreeMap` 非常适合此场景,它们可以在 O(log m) 的时间内完成操作。因此,总的时间复杂度为 O(n log m)。在滑动过程中,不断更新最大得分和对应的起始位置即可。z具体的详细代码和题解可以戳我主页的文章查看
投递京东等公司10个岗位
点赞 评论 收藏
分享
08-16 21:00
门头沟学院 Java
点赞 评论 收藏
分享
评论
5
7
分享

创作者周榜

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