拼多多笔试题
有点为难人了。
第一题:先统计对称位置上不同的字符个数count,1. 奇数情形,k>=count的时候是yes,因为多出来的操作可以改变中间的字符 2. 偶数情形,同样是k>=count的时候是yes,这是因为多出来的k-count次操作可以先不停改错某个字符k-count-1次最后一次改对。
第二题:考虑x个红球y个白球, x+y=n,红球不相邻所以把x个红球插入到白球产生的y+1空中,枚举所有合法的x,y组合,答案是\sum C(n-x+1, x)
第三题:和为m的倍数等价于x mod m + y mod m = m,先按照mod m剩余类统计,然后两两匹配,比如1和m - 1匹配,匹配完之后再找数字比较多的那一组里面的相同的数,不用关心被匹配的数是什么,只要后面直接统计相同的数就可以了。因为被匹配的数是可以随意找的。
第四题:记录dp[i][0/1]表示到第i位交换和不交换两个数组的最大值,在dp的过程中记录cnt[i][0/1]表示交换和不交换的最小次数。
第一题:先统计对称位置上不同的字符个数count,1. 奇数情形,k>=count的时候是yes,因为多出来的操作可以改变中间的字符 2. 偶数情形,同样是k>=count的时候是yes,这是因为多出来的k-count次操作可以先不停改错某个字符k-count-1次最后一次改对。
第二题:考虑x个红球y个白球, x+y=n,红球不相邻所以把x个红球插入到白球产生的y+1空中,枚举所有合法的x,y组合,答案是\sum C(n-x+1, x)
第三题:和为m的倍数等价于x mod m + y mod m = m,先按照mod m剩余类统计,然后两两匹配,比如1和m - 1匹配,匹配完之后再找数字比较多的那一组里面的相同的数,不用关心被匹配的数是什么,只要后面直接统计相同的数就可以了。因为被匹配的数是可以随意找的。
第四题:记录dp[i][0/1]表示到第i位交换和不交换两个数组的最大值,在dp的过程中记录cnt[i][0/1]表示交换和不交换的最小次数。
全部评论
最后一题我也这么写的,只有85%
第三题存得List<List<int[]>> 匹配找最多的怎么找呢
佬,问一下需要双机位吗?
相关推荐
投票
点赞 评论 收藏
分享
10-24 21:47
齐齐哈尔大学 Java 点赞 评论 收藏
分享