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,最后一题没啥思路也不想写了。直接交卷。#笔试##拼多多#
解法思路类似两数之和:使用哈希表记录每个数对 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,最后一题没啥思路也不想写了。直接交卷。#笔试##拼多多#
全部评论
第一第三题我超时了,用的双指针遍历,不知道怎么优化剪枝,第二题贪心过了
我和你思路一模一样,但每道题都有一部分测试用例不通过这是因为啥啊。。。。大佬在吗,想不出是差在那部分细节上
第一题余数为0和m为偶数时的m/2的求n*(n-1)/2,
其他小于等于m/2的k求map[k]*map[m-k],
这样为啥不对啊,只过32%
我第三题只用了滑动窗口,但是没用单调队列,不过还是AC了;最后一题没什么思路,就直接输出0了,能拿15%😂
3.2能进面试嘛,我也差不多这个
相关推荐
点赞 评论 收藏
分享