pdd笔试解析(菜鸟勿喷)
第一题很简单,模拟即可,将第一个字母和后面为下标为奇数的字符拼接即可
--------------------------------------------------------------------
第二题:
第一行有三个整数n,m,α(1≤n,m,c≤105),代表物流商给出
了接下来n天的发货价格,有m个订单需要发货,每天最多能发c
个包裹。
第二行有n 个整数a1,a2,...,an(0 ≤a≤10,1≤i≤n),代
表第天发货一个包裹的价格为α。
第三行有m个整数b1,b2,...,bm(1≤bj≤n,1≤j≤m),代
表订单j需要在第b;天以及之前发货。
(输入数据保证在n天内可以将所有订单发完)
输入
342
321
1223
输出
8
----------------------------------------------------------
这里将价格记为price数组,发货期限记为day数组,将day数组排序,优先处理期限小的包裹,用一个优先队列将当前期限之前的price加入到队列里面自动排序,之后每次从队列顶部取出最小的price,同时更新剩余使用次数,如果使用次数为0则将对应数据弹出
-----------------------------------------------------------
第三题平衡片段
输入复制
3
201
输出复制
3
说明
样例中,满足条件的子段共有3个:
·[1]:能量和为1,长度为1
·[2,0]:能量和为2,长度为2
·[1,2,0]:能量和为3,长度为3
------------------------------------------
通过分析我们得知0单独不能满足条件,1单独可以满足条件,大于1的不论怎么组合都不能满足条件,必须和0组合才能满足条件,我们可以将数字都-1,2 0 1变成1 -1 0,这样就将问题转换成了从序列里面找出和为0的子串,和leetcode 560一样,通过前缀表+哈希表即可解答
--------------------------------------------------
最后一题没时间看了,手敲不易,还望多多支持