拼多多4.9笔试AK
第一题 字符串中找连续的9(只能是9个)个1
第二题 n个人m个东西 一个兑换券可以换k个东西 单次兑换x个东西需要x/k四舍五入张券,每个人只能兑换一次,问最少多少券可以兑换全部m个东西
题目描述起来有点抽象,答案只需要特判一下m≤2 的情况,其他情况解决方法如下,先全部白嫖满,然后剩下的/k上取整
第三题 给定正整数数字串s1,s2,允许调整s1顺序使得其最大的同时不超过s2
卡了我一个多小时,还好拼多多允许本地ide,写了对拍找到了错误样例。将s1桶计数一下,然后dfs每个位置都尽量取s2的值(这样最大),一旦无法继续就回溯到上一个状态尝试-1的方案。一旦出现不等于s2前缀的答案结束递归。剩余的部分直接从大到小排序。
第四题 n个商品 m个券 pi为商品价格 ai为折扣券门槛 bi为折扣券金额
贪心即可 按照(折扣额,门槛)的pair进行从大到小排序,pi存multiset里,遍历排序后的pair lower_bound找出来删掉就行。还好这题代码量不大,最后十几分钟冲刺成功
upd:笔试挂了
#笔试# #拼多多求职进展汇总# #拼多多#
第二题 n个人m个东西 一个兑换券可以换k个东西 单次兑换x个东西需要x/k四舍五入张券,每个人只能兑换一次,问最少多少券可以兑换全部m个东西
题目描述起来有点抽象,答案只需要特判一下m≤2 的情况,其他情况解决方法如下,先全部白嫖满,然后剩下的/k上取整
第三题 给定正整数数字串s1,s2,允许调整s1顺序使得其最大的同时不超过s2
卡了我一个多小时,还好拼多多允许本地ide,写了对拍找到了错误样例。将s1桶计数一下,然后dfs每个位置都尽量取s2的值(这样最大),一旦无法继续就回溯到上一个状态尝试-1的方案。一旦出现不等于s2前缀的答案结束递归。剩余的部分直接从大到小排序。
第四题 n个商品 m个券 pi为商品价格 ai为折扣券门槛 bi为折扣券金额
贪心即可 按照(折扣额,门槛)的pair进行从大到小排序,pi存multiset里,遍历排序后的pair lower_bound找出来删掉就行。还好这题代码量不大,最后十几分钟冲刺成功
upd:笔试挂了
#笔试# #拼多多求职进展汇总# #拼多多#
全部评论
第三题过80%不知道哪错了
和你的思路全部一样,就是第三题我实在时间不够,没有把回溯代码写完,导致只过了20%
。
还有就是第四题我看数据量不是太大,就用的vector<int>nums(100001,0);用空间换时间。
相关推荐

点赞 评论 收藏
分享
04-09 21:07
门头沟学院 Java 
点赞 评论 收藏
分享

点赞 评论 收藏
分享