百度笔试
百度笔试1019,b卷,只A出前两道。
第一题,分裂数字,直接把一个数每次都分成2*min即可,最开始我还想着每次2分,结果0%。 明白为什么了,3,18时,18分成三个6只要两次,但如果是2个9,就要再分,是三次。
第二题,求字符串中长度为k的前半和=1/2后半和的满足数量,滑动窗口即可
第三题,01偶数长度字符串,对称位置相同即为好对,可以进行最多m次操作(翻转01),求共有多少种方案可以使得最终刚好有k个好对。
我的想法是,先达成k对好对,就至少需要k-已有好对次操作。 这个操作种数我用C(不好对数,操作次数)*2,是不是这里就错了。
达成好对目标后,就可以考虑每次增加2个操作(while),做抵消的操作,即C(对数,抵消操作数/2),这里是所有对,还是没操作过的对当底数我也不清楚。
总的来说应该是用排列组合算,但两个排列数我都不会算,难顶。
第一题,分裂数字,直接把一个数每次都分成2*min即可,最开始我还想着每次2分,结果0%。 明白为什么了,3,18时,18分成三个6只要两次,但如果是2个9,就要再分,是三次。
第二题,求字符串中长度为k的前半和=1/2后半和的满足数量,滑动窗口即可
第三题,01偶数长度字符串,对称位置相同即为好对,可以进行最多m次操作(翻转01),求共有多少种方案可以使得最终刚好有k个好对。
我的想法是,先达成k对好对,就至少需要k-已有好对次操作。 这个操作种数我用C(不好对数,操作次数)*2,是不是这里就错了。
达成好对目标后,就可以考虑每次增加2个操作(while),做抵消的操作,即C(对数,抵消操作数/2),这里是所有对,还是没操作过的对当底数我也不清楚。
总的来说应该是用排列组合算,但两个排列数我都不会算,难顶。
全部评论
我想复杂了,没时间验证,但是排列组合的式子应该是对的,你可以看看
C题我提交了快100次写了一个多小时,感觉写的应该没有什么问题,用的也是组合数,加上一个全排列,我分了两种情况,一种情况是它的数量比M小另一种是比M大,但是我发现了,如果要进行排列的时候需要加上组合,但是一点儿没通过
感觉第一题是不是有点问题,如果是2, 5的话按照2*min来拆就变成1和4了,数组最小值就变成1了
求问第二题第三题具体是什么类型题目,力扣有没有同类题目,想学习一下
第三题跟你思路一样 但没写出来 脑子不太行
字符串总长度是奇数的时候,还得考虑每次增加奇数次操作,多出来的一个反转字符串中心,之后成对的操作做抵消
最后一题思路和你一样但是只有10%
相关推荐
10-17 12:31
重庆交通大学 技术支持工程师 点赞 评论 收藏
分享

点赞 评论 收藏
分享