腾讯音乐 暑期实习 机器学习 20220407笔试
一、 三道编程题 每题 30分
1. 一个二进制字符串, 判断最少删除多少位,是2的整数次幂
我一开始还想转换成十进制,判断是不是2的幂,balabala的,其实没那么麻烦,二进制是2的幂当且仅当除了最高位外其余都是0,所以统计有多少1,删除除了最高位的就行了
通过100%
2. 有一个数组,每次选一个数减去x,共操作k次,需使最大值尽可能小,输出最大值。
直接暴力做的 60%, 没想出来怎么优化
3. k-size字符串表示,有k个连续的部分,比如‘aabbccc’是3-size:'aa', 'bb', 'ccc'.合法定义为,每部分长度至少为2,给定字符串长度n,和k-size的k,求有多少种符合条件的字符串(每个字符小写字母)
通过 30%
我觉得我想出来了,没时间实现了,而且可能细节有点问题。首先k-size,就挑k个部分,第一部分可以是26个字母中的任意一个,第二部分是与前一部分不一样的25个种的一个,剩下的同理,所有是26 * 25^(k-1),然后比如3-size,长度为9的话,三部分是 a b c的话,那么先放aa bb cc ,然后还空缺3个位置,在放字母,共有C_4^2+4种放法(3+1 = 4 这里的三是还剩三个位置, 3-1 = 2 这里的三是k) 相当于三个球有四个地方可以放挡板,其中挡板可以在同一个位置。
感觉没表述清楚,等待评论区大神
二、问答题 10分
判断二叉搜索树
(这题也出成编程题不好吗?)
#腾讯音乐##腾讯音乐娱乐##笔试题目##实习#